Javascript 使用数组对象中的值对对象数组进行排序 编辑:看来我想得太多了,想要一个简单的Array.sort()!
我有一个对象数组,我想根据另一个对象的值进行排序,该对象的值是包含Javascript 使用数组对象中的值对对象数组进行排序 编辑:看来我想得太多了,想要一个简单的Array.sort()!,javascript,arrays,sorting,object,Javascript,Arrays,Sorting,Object,我有一个对象数组,我想根据另一个对象的值进行排序,该对象的值是包含ts的数组。我想要排序的对象数组有一个id引用,该引用指向包含要排序的ts值的对象,这些数组以最高的ts始终位于[0]位置进行排序。下面是一些代码片段来解释: 要排序的对象数组 包含时间戳的数组的对象 预期排序结果 您可以获取被引用对象的第一项的值进行排序 var数组=[{id:'abc'},{id:'def'},{id:'ghi'}], object={abc:[{ts:1},{ts:6}],def:[{ts:4},{ts:2
ts
的数组。我想要排序的对象数组有一个id
引用,该引用指向包含要排序的ts
值的对象,这些数组以最高的ts
始终位于[0]
位置进行排序。下面是一些代码片段来解释:
要排序的对象数组
包含时间戳的数组的对象
预期排序结果
您可以获取被引用对象的第一项的值进行排序
var数组=[{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(数组)代码>
作为控制台包装{max height:100%!important;top:0;}
排序的逻辑是什么?您尝试了什么?你能附上你的密码吗?我很尴尬答案这么简单。谢谢你提醒我不要想得太多!
[
{ id: 'abc' },
{ id: 'def' },
{ id: 'ghi' }
]
{
abc: [{ ts: 6 }, { ts: 1 }],
def: [{ ts: 4 }, { ts: 2 }],
ghi: [{ ts: 5 }, { ts: 3 }]
}
[
{ id: 'abc' },
{ id: 'ghi' },
{ id: 'def' }
]