我有一个数组如下:
var arr = [
{
subArray1:[
{
subArray2:[
{
value: 1
},
{
value: 0
}
]
},
{
subArray2:[
{
value: 1
},
{
value: 0
}
]
}
]
}
];
我想过滤掉 subArray2 中包含值 1 的所有对象并返回整个数组。 预期输出如下:
newArr= [
{
subArray1:[
{
subArray2:[
{
value: 1
}
]
},
{
subArray2:[
{
value: 1
}
]
}
]
}
]
我无法以这样的方式链接映射和过滤方法以获得上述所需的输出。 请帮助我实现这一目标。
最佳答案
您需要映射每个 arr
项和每个 arr.subArray1
项,然后过滤 subArray2
:
var arr = [
{
subArray1:[
{
subArray2:[
{
value: 1
},
{
value: 0
}
]
},
{
subArray2:[
{
value: 1
},
{
value: 0
}
]
}
]
}
];
console.log(
arr.map(({...el}) => {
el.subArray1 = el.subArray1.map(({...el1}) => {
el1.subArray2 = el1.subArray2.filter(({value}) => value !== 0);
return el1;
});
return el;
})
)
关于javascript - 如何在 Javascript 中为复杂的对象数组链接映射和过滤方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67812397/