我想知道如何重新排序数组,以便每个对象都位于其自己的 id
- 1 的索引处。
//Lets say we have an array like so
var unOrderedArray=[{Id:2,Name:"Bob"}, {Id:1,Name:"Julian"},
{Id:3,Name:"Jeff"}]
我可以写什么样的函数才能得到:
var orderedArray=[{Id:1,Name:"Julian"},{Id:2,Name:"Bob"},{Id:3,Name:"Jeff"}]
到目前为止我已经试过了,但它不起作用:
for(let i = 0;i<unOrderedArray.length;i++){
correctlyOrderedArray[unOrderedArray[i].Id]=unOrderedArray[i];
}
附言!不保证最低Id为1,最低和最高Id之间没有间隙,例如2,10,5,3等。
最佳答案
使用排序
method .无论您拥有哪个 Id
。
var unOrderedArray=[{Id:21,Name:"Bob"}, {Id:5,Name:"Julian"},
{Id:313,Name:"Jeff"}, {Id:4,Name:"Ivan"}];
orderedArray = unOrderedArray.sort(function(a, b) {
return a.Id - b.Id;
});
console.log(orderedArray);
关于javascript - 根据每个对象的 id 重新排序数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45904998/