我有一个 JavaScript 对象数组,可以将其排序并排列为一个新的对象数组,并保持顺序。
我的对象数组。我按照我想要的方式订购它们。在此对象的索引为 0,1 和 2。
[{0: {name: 'Joel', age:25, id: 2}}, {1: {name: 'Sam', age: 23, id: 4}}, {2: {name: 'Tim', age:27, id: 3}}]
我想要的是让'id'成为索引值。我希望它按“名称”的升序排列(保留上述顺序)
[{2: {name: 'Joel', age:25, id: 2}}, {4: {name: 'Sam', age: 23, id: 4}}, {3: {name: 'Tim', age:27, id: 3}}]
我试过使用这个功能。
for (i in members) {
member[members[i].id] = members[i];
}
但是失败了。输出是
[{}, {}, {name: "Joel", age:25, id: 2}, {name: "Tim", age:27, id: 3}, {name: "Sam", age: 23, id: 4}]
我也尝试过使用 forEach 和 sort 方法。但都失败了。
有什么方法可以在 JavaScript 中完成此操作。
最佳答案
let obj = [{0: {name: 'Joel', age:25, id: 2}}, {1: {name: 'Sam', age: 23, id: 4}}, {2: {name: 'Tim', age:27, id: 3}}]
let op = obj.map((e,index)=>{
return{
[e[index].id] : e[index]
}
}).sort((a,b)=> Object.keys(a) - Object.keys(b))
console.log(op)
关于Javascript 对象数组排序问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54210800/