我需要找到一种最简单的方法来设置对象数组的顺序。 比如有一个数组:
var array = [
{id: 1, name: "Matt"},
{id: 2, name: "Jack"},
{id: 3, name: "Morgan"},
{id: 4, name: "Bruce"}
];
我已经提供了
var order = [1,4,2,3];
它指的是数组
项的对象id
属性。
现在我需要重新排序数组,所以它应该是这样的:
var array = [
{id: 1, name: "Matt"},
{id: 4, name: "Bruce"},
{id: 2, name: "Jack"},
{id: 3, name: "Morgan"}
]
最佳答案
使用 Array#sort
排序方法和内部自定义排序函数使用 Array#indexOf
获取索引的方法。
var array = [{
id: 1,
name: "Matt"
}, {
id: 2,
name: "Jack"
}, {
id: 3,
name: "Morgan"
}, {
id: 4,
name: "Bruce"
}];
var order = [1, 4, 2, 3];
array.sort(function(a, b) {
// sort based on the index in order array
return order.indexOf(a.id) - order.indexOf(b.id);
})
console.log(array);
关于javascript - 在javascript中设置对象数组的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39122855/