[ { id: 4, name:'alex' }, { id: 3, name:'jess' }, { id: 9, name:'...' }, { id: 1, name:'abc' } ]
我有另一个带着正确“顺序”的列表。[ 3, 1, 9, 4]
如何根据" id "键将第一个列表匹配到第二个列表的顺序?结果应该是:
[ { id: 3, name:'jess' }, { id: 1, name:'abc' }, { id: 9, name:'...' }, { id: 4, name:'alex' } ]
return order.indexOf(a.id) < order.indexOf(b.id) ? -1 : 1;
JSFiddle链接:http://jsfiddle.net/zamnuts/guyjm0za/ - zamnuts0
。这是病态的,因为只有当需要排序的两个元素具有相同的id
时才会发生这种情况。因此,我会使用return order.indexOf(a.id) - order.indexOf(b.id);
。 - Michael_Scharfreturn order.indexOf('' + a.id) - order.indexOf('' + b.id);
- Ylama