<分区>
const order = ['b', 'c', 'a'];
const objects = [
{ name: 'a' },
{ name: 'b' },
{ name: 'c' },
];
尝试找出使用手动 order
数组按名称对 objects
数组进行排序的最有效方法。
标签 javascript
<分区>
const order = ['b', 'c', 'a'];
const objects = [
{ name: 'a' },
{ name: 'b' },
{ name: 'c' },
];
尝试找出使用手动 order
数组按名称对 objects
数组进行排序的最有效方法。
最佳答案
这里是对 sort
和 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);
使用缓存索引:
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);
关于javascript - 使用引用数组手动排序数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56601132/