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 }]
}
答案 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; }