gpt4 book ai didi

数组中的 Javascript 过滤器对象

转载 作者:行者123 更新时间:2023-11-30 13:54:17 25 4
gpt4 key购买 nike

我遇到了这个挑战,我想返回一个包含对象的数组,其中控件数组在其子对象的“值”属性中具有值。

除此之外,它还应该删除控件数组中没有值的对象

const data = [
{
'groupName': '1',
'controls': [
{'value': ''},
{'value': ''}
]
},
{
'groupName': '2',
'controls': [
{'value': ''},
{'value': '2'}
]
}
];

const result = data.filter(cl => {
return cl.controls.some(r => {
return r.value !== '';
});
});

console.log(result);

结果是这样的

[
{
'groupName': '2',
'controls': [
{'value': ''},
{'value': '2'}
]
}
];

但我希望它是这样的

   [
{
'groupName': '2',
'controls': [
{'value': '2'}
]
}
];

最佳答案

使用嵌套的 filter() 而不是 some()

const data = [{groupName:"1",controls:[{value:""},{value:""}]},{groupName:"2",controls:[{value:""},{value:"2"}]}];;

const result = data.filter(cl => {
cl.controls = cl.controls.filter(r => {
return r.value !== '';
});
return cl.controls.length
});

console.log(result);

注意:它改变了原始数组。您可以使用 Array.from(data).filter(...) 来避免它

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

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