[英]Javascript filter objects in in array
我遇到了挑戰,我想返回一個包含對象的數組,其中控件數組在其子對象的“ value”屬性中具有值。
除此之外,它還應該刪除沒有值的控件數組中的對象
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(...)
避免它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.