Pau*_*aul -1 javascript arrays json object
我有包含 obj 的数组数组,我应该只获取包含具有特定键的 obj 的数组。
我尝试使用双过滤器,但它不起作用。
你能给我一些建议吗?
let result = [
[
{
"id": 1
},
{
"id": 2
}
],
[
{
"id": 3
},
{
"id": 4
},
{
"id": 5,
"type": {
"id": 1555
}
}
],
[
{
"id": 6,
"type": {
"id": 5456
}
}
]
];
const c = result.filter(array => array.filter(a => a.hasOwnProperty('type') === true));
console.log(c);Run Code Online (Sandbox Code Playgroud)
结果:
[
[
{
"id": 3
},
{
"id": 4
},
{
"id": 5,
"type": {
"id": 1555
}
}
],
[
{
"id": 6,
"type": {
"id": 5456
}
}
]
]
Run Code Online (Sandbox Code Playgroud)
你的过滤器函数中的过滤器是错误的,因为你不想返回一个新的集合,你想返回一个布尔表达式。Array.some()帮助并检查该子数组中是否有任何项目具有此属性。
let result = [
[{
"id": 1
},
{
"id": 2
}
],
[{
"id": 3
},
{
"id": 4
},
{
"id": 5,
"type": {
"id": 1555
}
}
],
[{
"id": 6,
"type": {
"id": 5456
}
}]
];
const validArrays = result.filter(subArray => subArray.some(item => item.hasOwnProperty('type')));
console.log(validArrays);Run Code Online (Sandbox Code Playgroud)