将一种类型的对象嵌套数组映射到另一种类型的对象嵌套数组的通用方法

时间:2019-09-20 19:20:41

标签: javascript arrays json

我说一个源数组。

[{ id: 1
   name: 'one'
   ...other-properties
   children: [{ 
                 id: 1.1,
                 name: 'one.one',
                 ...other-properties
                 children: [ upto n levels... ]
              }]
}]

假设我有一个目标数组。

[{ value: 1
   label: 'one'
   ...other-properties
   childs: [{ 
                 value: 1.1,
                 label: 'one.one',
                 ...other-properties
                 childs: [ upto n levels... ]
              }]
}]
上面的

源名称和目标名称可以是任意名称。和键可以是任何数字。那么有可能创建通用功能来将源数据映射到目标数据吗?

1 个答案:

答案 0 :(得分:1)

  const map = ({ id, name, ...rest, children }) => ({ value: id, label: name, ...rest, childs: children.map(map), });

您可以使用对象分解和递归将一个版本映射到另一个版本。