首页 > 解决方案 > 如何按特定 ID 合并和排序 2 个数组

问题描述

我想按 ID 合并这两个数组,并按 ID desc 对合并的结果数组进行排序。

.

const array1 = [
  {id: "14",  text: "Notice 14"},
  {id: "13",  text: "Notice 13"},
  {id: "12",  text: "Notice 12"},
  {id: "11",  text: "Notice 11"},
  {id: "10",  text: "Notice 10"},
]

const array2 = [ 
  {id: "11",  text: "Notice 11a"},
  {id: "14",  text: "Notice 14a"},
  {id: "12",  text: "Notice 12"},
  {id: "15",  text: "Notice 15"},
]

我想要一个按 ID 合并的数组并按 ID desc 排序:

[
{id: "15",  text: "Notice 15"}
{id: "14",  text: "Notice 14a"}
{id: "13",  text: "Notice 13"}
{id: "12",  text: "Notice 12"}
{id: "11",  text: "Notice 11a"}
{id: "10",  text: "Notice 10"}
]

标签: javascripttypescriptecmascript-6

解决方案


您可以尝试以下方法:

Object
  .values([...array1, ...array2].reduce((acc, item) => ({ ...acc, [item.id]: item }), {}))
  .sort((a, b) => (b.id - a.id))

推荐阅读