javascript – 如何根据另一个数组的顺序对对象数组进行排序?

前端之家收集整理的这篇文章主要介绍了javascript – 如何根据另一个数组的顺序对对象数组进行排序?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个对象列表:
[ { id: 4,name:'alex' },{ id: 3,name:'jess' },{ id: 9,name:'...' },{ id: 1,name:'abc' } ]@H_502_3@ 
 

我有另一个名单与正确的“命令”.

[ 3,1,9,4]@H_502_3@ 
 

根据密钥“id”,如何将第一个列表与第二个列表的排序相匹配?
结果应该是:

[ { id: 3,name:'abc' },{ id: 4,name:'alex' } ]@H_502_3@

解决方法

我踩了这个问题,用简单的.sort解决了这个问题

假设要排序的列表存储在变量needSort中,并且具有顺序的列表是变量顺序,并且两者都在相同的范围内,您可以像这样运行.sort:

needSort.sort(function(a,b){
  return order.indexOf(a.id) < order.indexOf(b.id) ? -1 : 1;
});@H_502_3@ 
 

它为我工作,希望它有帮助.

猜你在找的JavaScript相关文章