使用数组对象中的值对对象数组进行排序

时间:2018-01-27 20:42:17

标签: javascript arrays sorting object

编辑:看来我已经推翻了这个问题并要求一个简单的Array.sort()谢谢Nina Scholz!

我有一个对象数组,我想根据另一个对象的值进行排序,该对象的值是包含ts的数组。我想要排序的对象数组对包含要排序的id值的对象有ts引用,这些数组的排序最高ts始终位于{{1} }}。这里有几段代码可以解释:

要排序的对象数组

[0]

包含时间戳

的数组对象
[
  { id: 'abc' },
  { id: 'def' },
  { id: 'ghi' }
]

预期的排序结果

{
  abc: [{ ts: 6 }, { ts: 1 }],
  def: [{ ts: 4 }, { ts: 2 }],
  ghi: [{ ts: 5 }, { ts: 3 }]
}

1 个答案:

答案 0 :(得分:1)

您可以将引用对象的第一项的值用于排序。



var array = [{ id: 'abc' }, { id: 'def' }, { id: 'ghi' }],
    object = { abc: [{ ts: 1 }, { ts: 6 }], def: [{ ts: 4 }, { ts: 2 }], ghi: [{ ts: 3 }, { ts: 5 }] };
    
array.sort((a, b) => object[a.id][0].ts - object[b.id][0].ts);

console.log(array);

.as-console-wrapper { max-height: 100% !important; top: 0; }