Tengo una matriz de datos, quiero sumar todo el commentId . de comentario con JavaScript.
const comments = [ { commentId: 1, commentContent: 'Hai', replies: [ { commentId: 11, commentContent: 'Hai juga', replies: [ { commentId: 111, commentContent: 'Haai juga hai jugaa' }, { commentId: 112, commentContent: 'Haai juga hai jugaa' } ] }, { commentId: 12, commentContent: 'Hai juga', replies: [ { commentId: 121, commentContent: 'Haai juga hai jugaa' } ] } ] }, { commentId: 2, commentContent: 'Halooo' } ] Por ejemplo: Supongamos que hay commentId [1, 2, 11, 12, 111, 112, 121] . Por lo tanto, commentId.length es 7
Debe hacer esto a través de la función recursiva. Como puede haber n nivel de anidamiento entre el comentario y las respuestas. Eche un vistazo al siguiente código.
function caluclateLength(commentsOrReplies, sum=0) { sum += commentsOrReplies.length return commentsOrReplies.reduce((total, commentorReply) => (total + caluclateLength(commentorReply.replies || [])), sum) } console.log(comments) // should return desired result