以奇怪的方式对数组进行排序

时间:2019-04-10 01:49:53

标签: javascript arrays node.js sorting

假设我有一个像这样的数组:

let array = ["eid_x", "eid_x", "cid_x", "cid_x"]

我将如何对它进行排序,像这样?

let array = ["cid_x", "eid_x", "cid_x", "eid_x"]

原始数组是随机排列的,例如:eid, cid, cid, eid

有人知道如何像第二个数组那样对它进行排序吗?

1 个答案:

答案 0 :(得分:3)

将项目拆分为两个数组,然后从循环中的两个数组(在本例中为Array#map)中的一个中获取一个项目。

let array = ["eid_x", "eid_x", "cid_x", "cid_x"]

let eid = array.filter(i => i == 'eid_x')
let cid = array.filter(i => i == 'cid_x')

let result = new Array(array.length).fill(null)
  .map((i, idx) => idx % 2 == 0 ? cid.shift() : eid.shift())

console.log(result)