首页 > 解决方案 > 按特定顺序对数组进行排序

问题描述

我有一个数组

peeps = [{name: "Mike", age: 31},{name: "Dave", age: 31},{name: "Delta", age: 31},{name: "Clint", age: 31}] 

我需要按任意顺序对它们进行排序

newOrder = ['Delta', 'Dave', 'Mike', 'Clint']

我将如何引用newOrdersort peeps,还请记住,peeps不能保证其中的数据包含所有名称newOrder

标签: javascriptsorting

解决方案


const peeps = [
  { name: 'Mike', age: 31 },
  { name: 'Dave', age: 31 },
  { name: 'Delta', age: 31 },
  { name: 'Clint', age: 31 }
];
const newOrder = ['Delta', 'Dave', 'Mike', 'Clint'];

peeps.sort((a, b) => newOrder.indexOf(a.name) - newOrder.indexOf(b.name));

console.log(peeps);


推荐阅读