gpt4 book ai didi

javascript - 如果 doc 有 child ,请删除所有 child ,如果 child 有更多 child ,请删除这些 child

转载 作者:行者123 更新时间:2023-12-03 10:22:02 27 4
gpt4 key购买 nike

我的收藏具有以下结构

{
_id:1,
parent_id:0
}
{
_id:2,
parent_id:1
}
{
_id:3,
parent_id:1
}
{
_id:4,
parent_id:3
}

喜欢

a > a1 > a1-1,a1-2,a1-3 > a11

一个 parent 有很多 child , child 可以有很多 child 的无限循环

但是当用户单击 a 时,我想删除它的所有子项以及它的子项

我尝试了以下功能

var deleteChildCards = function(id){
var count=userCards.find({parent_id: id}).count();
if(count > 0){
userCards.find({parent_id: id}).forEach(function (card) {
deleteChildCards(card._id);
});
}
else{
return userCards.remove({_id: id});
}
}

如果我将 id 传递给函数,它必须删除它的所有子函数,这并没有删除所有文档,这个函数有什么问题。

还有其他方法可以编写这个函数吗?

最佳答案

在您的示例中,if-else 的 else 部分永远不会运行。尝试以下调整:

var deleteChildCards = function(id) {
userCards.find({parent_id: id}).forEach(function(card) {
deleteChildCards(card._id);
userCards.remove(card._id);
});
}

您可以完全消除此示例中的 if-else,因为如果没有找到 userCard,forEach 将不会迭代。

关于javascript - 如果 doc 有 child ,请删除所有 child ,如果 child 有更多 child ,请删除这些 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29583115/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com