首页 > 解决方案 > 合并两个数组并保留其他字段(数组对象之间的差异)

问题描述

我找不到一种干净的方法来合并两个数组并保留其他字段,即数组对象之间的区别。

  const currentForm = [
    {
      name: "username",
      type: "string",
      info: "enter username",
      value: "test"
    },
    {
      name: "password",
      type: "aes",
      info: "enter password",
      value: "pass"
    }
  ];

  const newForm = [
    {
      name: "username",
      type: "string",
      info: "enter username"
    }
  ];

合并后我想要这个数组:

  const currentForm = [
    {
      name: "username",
      type: "string",
      info: "enter username",
      value: "test"
    }
  ];

我用一个复杂的函数实现了这一点,但我认为它可以用 es6 语法轻松实现。

工作示例:https ://codesandbox.io/s/merged-arrays-18m1t?file=/src/App.js

标签: javascriptarraysdata-structuresecmascript-6

解决方案


我不清楚你想要达到什么目的。

如果要将第一个数组的每个对象与另一个数组中相同位置的对象合并:

currentForm.map((obj, i) => Object.assign({}, obj, newForm[i]));

推荐阅读