根据JavaScript中的id顺序合并对象

时间:2019-06-29 06:58:23

标签: javascript

我正在尝试解决此合并对象的顺序。一个对象和一个B对象组合为一个对象,但是请注意,顺序基于id。

我有两个对象和合并对象,但是我想根据ID进行排序。

输出应该是:

[
    {
        "id":1,
        "name":"apple"
    },
    {
        "id":2,
        "name":"apple2"
    },
    {
        "id":3,
        "name":"apple3"
    },
    {
        "id":4,
        "name":"apple4"
    }
]

我的代码:

var a = [{
    "id": 1,
    "name": "apple"
  },
  {
    "id": 2,
    "name": "apple2"
  },

]
var b = [{
    "id": 3,
    "name": "apple3"
  },
  {
    "id": 4,
    "name": "apple4"
  }
]

const result = Object.assign(a, b);
console.log(result)

1 个答案:

答案 0 :(得分:2)

使用传播语法合并到一个数组中,然后按id属性排序:

var a = [{
    "id": 1,
    "name": "apple"
  },
  {
    "id": 2,
    "name": "apple2"
  },

]
var b = [{
    "id": 3,
    "name": "apple3"
  },
  {
    "id": 4,
    "name": "apple4"
  }
]

const result = [...a, ...b]
  .sort((a, b) => a.id - b.id);
console.log(result)

(如果您事先知道两个输入数组都已经有其ID,并且只需要将较大的块放在一起,那么就可以省去.sort,而只散布{{1} },然后传播a