为了账号安全,请及时绑定邮箱和手机立即绑定

尝试从对象数组中获取 id 并将这些 id 推入数组

尝试从对象数组中获取 id 并将这些 id 推入数组

开心每一天1111 2023-10-14 10:08:39
我正在尝试使用下面的代码从对象数组中获取 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);


查看完整回答
反对 回复 2023-10-14
?
慕妹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']


查看完整回答
反对 回复 2023-10-14
  • 2 回答
  • 0 关注
  • 113 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信