javascript - 使用引用数组手动排序数组

标签 javascript

<分区>

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

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

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

最佳答案

这里是对 sortindexOf 的快速使用。

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/

相关文章:

javascript - 从 axios 响应 reactjs 填充输入字段

javascript - 动态创建 HTML 表单的更好方法

JavaScript 变量作用域返回 "undefined"

JavaScript 使用模块模式创建类

javascript正则表达式忽略chokidar的子目录

javascript - window.onload 与 document.onload

javascript - 在 Firefox 中加载图像时显示边框和标题

javascript - 如何对另一个文件进行 POST 并将该文件加载到主文件中?

javascript - ANDROID:网站加载不正确,某些链接在 webview 中不起作用

javascript - .prev(选择器)不工作