假设:
var a1 = [{name:'Scott'}, {name:'John'}, {name:'Albert'}];
var sortOrder = ['John', 'Scott', 'Albert'];
如何根据第二个数组中指定的顺序对第一个数组(按属性)进行排序。
// result: [{name:'John'}, {name:'Scott'}, {name:'Albert'}]
感谢。
答案 0 :(得分:7)
a1.sort(function(a,b) {
return (
sortOrder.indexOf(a.name) < sortOrder.indexOf(b.name) ? -1 : 1
);
});