重新排序数组的对象

时间:2018-04-11 02:22:18

标签: javascript lodash

我有一个由多个数组组成的对象,这些数组共享时间序列中事件的公共属性:

{
  time: [1522513800000, 1522515600000, 1522517400000, 1522519200000]
  event: ['foo', 'bar', 'some', 'thing']
  notes: ['', 'not foo', 'sum', '']
}

我想将这个对象重新排序(重新排列?)成一个具有相应值的数组数组,如下所示:

[[1522513800000, 'foo', ''], [1522515600000, 'bar', 'not foo'], [1522517400000, 'some', 'sum'], [1522519200000, 'thing', '']]

我更喜欢vanilla / ES6解决方案,但如果可行的话,我 在这个项目中使用lodash。

1 个答案:

答案 0 :(得分:2)

首先将其转换为数组,然后使用.sort

const input = {
  time: [1522513800000, 1522515600000, 1522517400000, 1522519200000],
  event: ['foo', 'bar', 'some', 'thing'],
  notes: ['', 'not foo', 'sum', '']
};
const numItems = input.time.length;
const items = Array.from({ length: numItems }, (_, i) => ([
  input.time[i],
  input.event[i],
  input.notes[i],
]));
items.sort((itemA, itemB) => itemB.time - itemA.time);
console.log(items);