javascript - 按第二个数组的顺序排序

Sco*_*ach 2 javascript arrays sorting

鉴于:

var a1 = [{name:'Scott'}, {name:'John'}, {name:'Albert'}];
var sortOrder = ['John', 'Scott', 'Albert'];
Run Code Online (Sandbox Code Playgroud)

如何根据第二个数组中指定的顺序对第一个数组(按属性)进行排序.

// result: [{name:'John'}, {name:'Scott'}, {name:'Albert'}]
Run Code Online (Sandbox Code Playgroud)

谢谢.

sje*_*397 7

a1.sort(function(a,b) {
  return (
    sortOrder.indexOf(a.name) < sortOrder.indexOf(b.name) ? -1 : 1
  );
});
Run Code Online (Sandbox Code Playgroud)