使用参考数组手动对数组进行排序

ste*_*715 2 javascript

const order = ['b', 'c', 'a'];

const objects = [
  { name: 'a' },
  { name: 'b' },
  { name: 'c' },
];
Run Code Online (Sandbox Code Playgroud)

尝试找出objects使用手动order数组按名称对数组进行排序的最有效方法。

sja*_*han 6

这是sortplus 的快速用法indexOf

const order = ['b', 'c', 'a'];

const objects = [
  { name: 'a' },
  { name: 'b' },
  { name: 'c' },
];

const sortedObjects = objects.sort((o1, o2) => order.indexOf(o1.name) - order.indexOf(o2.name));

console.log(sortedObjects);
Run Code Online (Sandbox Code Playgroud)

使用缓存的索引:

const order = ['b', 'c', 'a'].reduce((acc, elt, index) => (acc[elt] = index, acc), {});

const objects = [
  { name: 'a' },
  { name: 'b' },
  { name: 'c' },
];

const sortedObjects = objects.sort((o1, o2) => order[o1.name] - order[o2.name]);

console.log(sortedObjects);
Run Code Online (Sandbox Code Playgroud)