根据每个对象的id重新排序数组

Alb*_*maa 3 javascript arrays sorting

我想知道如何重新排序一个数组,以便每个对象都在它自己的索引id- 1.

//Lets say we have an array like so
var unOrderedArray=[{Id:2,Name:"Bob"}, {Id:1,Name:"Julian"},
{Id:3,Name:"Jeff"}]
Run Code Online (Sandbox Code Playgroud)

我能写什么样的功能才能得到:

var orderedArray=[{Id:1,Name:"Julian"},{Id:2,Name:"Bob"},{Id:3,Name:"Jeff"}]
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经尝试了这个,但它不起作用:

for(let i = 0;i<unOrderedArray.length;i++){
    correctlyOrderedArray[unOrderedArray[i].Id]=unOrderedArray[i];
}
Run Code Online (Sandbox Code Playgroud)

PS!不能保证最低Id为1并且最低和最高Id之间没有间隙,例如2,10,5,3等.

shu*_*van 6

使用sort 方法.不管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);
Run Code Online (Sandbox Code Playgroud)