bonsoir,
j'ai l'objet suivant qui contient des commentaires, sous commentaires, sous sous commentaires et sous sous sous commentaires.
pour cet exemple je n'ai pas utilisé les sous sous sous commentaires.
quand un commentaire est supprimé, il faut donc supprimer tout les s_com, 2s_com et 3s_com relatifs a ce commentaire, alors je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 let com = { "0": { "id_comment": "107", "id_pub": "96" }, "1": { "id_comment": "108", "id_pub": "96" }, sous_commentaire: [{ "id_s_comment": "48", "id_comment": "107" }, { "id_s_comment": "49", "id_comment": "107" }, { "id_s_comment": "60", "id_comment": "107" }], sous_sous_comment: [{ 'id_2s_comment': '10', 'id_s_comment': '48' }, { 'id_2s_comment': '11', 'id_s_comment': '49' }], "3s_comment": [] };
ce que je ne comprends pas c'est pourquoi les sous commentaires et les sous sous commentaires ne sont pas correctement supprimés , il reste encore un item..., normalement il doit être supprimé non?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 $.map(com, function(val, cle) { if (cle != 'sous_commentaire' && cle != 'sous_sous_comment' && cle != '3s_comment') { com.sous_commentaire.map(function(cle1, i) { if (cle1.id_comment == val.id_comment) { com.sous_sous_comment.map(function(cle2, i2) { if (cle1.id_s_comment == cle2.id_s_comment) { com.sous_sous_comment.splice(i2, 1);//suppression 2s_com } }); com.sous_commentaire.splice(i, 1);//suppression s_com } }); } return com; }); console.log(JSON.stringify(com)); /*resultat : {"0":{"id_comment":"107","id_pub":"96"},"1":{"id_comment":"108","id_pub":"96"} ,"sous_commentaire":[{"id_s_comment":"49","id_comment":"107"}] ,"sous_sous_comment":[{"id_2s_comment":"11","id_s_comment":"49"}],"3s_comment":[]}*/
est ce que c'est un problème d'index de splice ?
Partager