gpt4 book ai didi

javascript - 深度过滤对象 Javascript 数组

转载 作者:行者123 更新时间:2023-11-30 20:50:05 26 4
gpt4 key购买 nike

我们试图围绕这个问题思考一段时间,但似乎无法得到我们正在寻找的东西。我们已经尝试了很多循环并使用 lodash 库来实现这一点,但没有成功。我们想要遍历数组并返回任何具有属性 checked:true 的对象和子对象,或者删除具有 checked:false 的对象。有多个层次,我们无法返回我们正在寻找的东西

types: [
{
name: 'Dresses',
checked: true,
collections: [
{
name: 'My Collection',
checked: true,
variations: [
{
size: 'XXS',
checked: true

},
{
size: 'XS',
checked: false

}
]
},
{
name: 'False Collection',
checked: false,
variations: [
{
size: 'XXS',
checked: false

},
{
size: 'XS',
checked: false

}
]
}
]
},
{
name: 'Tops',
checked: true,
collections: [
{
name: 'Another Collection',
checked: true,
variations: [
{
size: 'XXS',
checked: false

},
{
size: 'XS',
checked: true

}
]
}
]
}
]

我们试图生成的预期输出是:

types: [
{
name: 'Dresses',
checked: true,
collections: [
{
name: 'My Collection',
checked: true,
variations: [
{
size: 'XXS',
checked: true

}
]
}
]
},
{
name: 'Tops',
checked: true,
collections: [
{
name: 'Another Collection',
checked: true,
variations: [
{
size: 'XS',
checked: true

}
]
}
]
}
]

它会删除具有属性 checked: false 的任何对象

最佳答案

如果你正在使用 lodash,我建议使用 filterDeep来自 deepdash 的方法:

var filtrate = _.filterDeep(types, function(value, key, parent) {
if (parent.checked) return true;
});

这是一个test适合你的情况

关于javascript - 深度过滤对象 Javascript 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48270845/

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