首页 > 解决方案 > 如何将值从父级复制到数组中的子级

问题描述

我有一个数组,其名称如下:

[ 
  {
    name: "John",
    lastName: "Doe",
    children: [
       {
          name: "Max",
          lastName: ""
       },
       {
          name: "Jay",
          lastName: ""
       },
    ]
  },
  {
     ...
  }
]

所以我有一个用户数组——其中一些有孩子。顶层的用户有一个lastName属性。我想将此值复制给他们的孩子。

这可以通过重新映射来实现吗?

我正在努力研究如何使用“父母”的值正确更新数据。

标签: javascriptarraysreactjs

解决方案


你可以做嵌套映射来创建一个新的父数组:

arr.map(parent => ({
  ...parent, // (1)
  children: item.children?.map(child => ({
    ...child, // (2)
    lastName: parent.lastName, // (3)
  })
);

(1)复制每个父级的所有道具,但分配一个新的子级数组,这是子级map方法的结果。

(2)将每个孩子的所有道具复制到新的孩子数组中

(3)分配lastName父级


推荐阅读