我有以下代码和测试数据:
const getNestedObject = (nestedObj, pathArr) => {
return pathArr.reduce((obj, key) => {
return (obj && obj[key] !== 'undefined') ? obj[key] : undefined, nestedObj;
});
}
const obj =
[
{
a: 1,
c: [
{
d: 1,
e: 'string',
f: [
{
value: 0,
},
{
value: 1,
}
],
},
],
},
{
a: 2,
c: [
{
d: 2,
e: 'string',
f: [
{
value: 3,
},
{
value: 4,
}
],
},
],
},
];
console.log(obj);
const fs = obj.map(o => getNestedObject(o, ['c', 'f']));
console.log(fs);
我想要做的是给出如下所示的对象数组,我只想获取名为的属性f
来自数组中的每个对象。所以,基本上最终结果应该是数组f
每个对象的值。由于“f”是一个数组,我非常希望最终结果只是一个包含所有“f”属性中的元素的数组,因此每个“f”都会分散开来,所以我有一个数组。我的上面getNestedObject
功能似乎不起作用,因为当console.log
下面的语句返回整个对象。有什么想法如何在 JS 中做到这一点吗?
所以基本上最终结果应该是:
[{ value: 0 }, { value: 1 }, { value: 3 }, {value: 4 }]