我有一个对象列表:
[ { 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@
它为我工作,希望它有帮助.