我正在尝试使用下面的代码从对象数组中获取 idconst opaqueMaterialSecondaryIds = Object.values(library?.layers).reduce((acc, opaque) => {
acc.push(...opaque.map(e => e.id));
return acc;
}, []);并在 is not function 处收到错误opaque.map,该对象如下所示我不确定上面的代码哪里做错了。任何人都可以对此提出任何想法,非常感谢。
2 回答
忽然笑
TA贡献1806条经验 获得超5个赞
map()
是一个数组方法,不存在于对象中。
你的每一项library?.layers
都是一个对象,所以opaque.map
不是一个函数。
旁注1:library?.layers
已经是一个对象,所以你不需要调用Object.values()
,而是可以直接使用library?.layers?.reduce()
。
旁注 2:如果您的目的是获取所有对象的 id opaque
,您可以这样做:
const opaqueMaterialSecondaryIds = library?.layers?.map(opaque => opaque.id);
慕妹3146593
TA贡献1820条经验 获得超9个赞
如果你的结构是这样的:
const layers = [
{
# other attributes,
id: 'id-1',
# other attributes,
},
{
...
},
];
我想你所需要的只是这个:
const layerIds = layers.map((l) => l.id);
console.log(layerIds);
# Output: ['id-1', 'id-2']
添加回答
举报
0/150
提交
取消