我有一个数据数组,我想将整个commentId与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'
}
]例如:假设有commentId [1, 2, 11, 12, 111, 112, 121]。因此,commentId.length是7
发布于 2022-05-19 08:27:41
您需要通过递归函数来完成这一任务。因为在注释和回复之间可以有n级嵌套。看看下面的代码。
function caluclateLength(commentsOrReplies, sum=0) {
sum += commentsOrReplies.length
return commentsOrReplies.reduce((total, commentorReply) => (total + caluclateLength(commentorReply.replies || [])), sum)
}
console.log(comments) // should return desired resulthttps://stackoverflow.com/questions/72293054
复制相似问题