我有定义对象顺序的变量,如下所示:
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/