javascript - 使用另一个数组对固定的对象数组进行排序

标签 javascript arrays sorting

我有定义对象顺序的变量,如下所示:

const order = ['large', 'medium', 'small'];

我想使用顺序数组中的名称来匹配数据数组对象的顺序:

const data = [{name: "small", children: []}, {name: "medium", children: []}, {name: "large", children: []}]

所以效果应该如下:

const data = [{name: "large", children: []}, {name: "medium", children: []}, {name: "small", children: []}]

我怎样才能做到这一点?

最佳答案

我们可以通过使用订单数组中name的索引来做到这一点:

const order = ['large', 'medium', 'small'];
const data = [{name: "small", children: []}, {name: "medium", children: []}, {name: "large", children: []}];

const sortArray = (arr, order) => {
  return data.sort((a, b) => order.indexOf(a.name) - order.indexOf(b.name)); 
}
console.log(sortArray(data, order));

关于javascript - 使用另一个数组对固定的对象数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64990910/

相关文章:

javascript - AJAX 将带有数据和多个图像的表单发送到 asp.net mvc 操作

javascript - AngularJS $watchCollection 与 ng-repeat 结合

PHP:许多连接还是一个内爆?

arrays - 在 Swift 4.1 中,如何打乱或随机化一个数组,使生成的数组的元素总和始终等于固定值?

c - qSort 未对我的数组进行排序

objective-c - 保持数组排序 - 在设置时、获取时还是稍后?

c - 使用 qsort 函数以交替方式对整数数组进行排序。

javascript - 如何从 Backbone.js $el 中删除 span 元素?

arrays - 如何在 Swift 中打乱数组?

javascript - 如何在nodeJS中使用 mqtt.Client(streamBuilder, options) 构造函数