我有一个像这样的对象,我需要从中按 id 排序。
64: {id: "83", name: "(83) x"}
65: {id: "84", name: "(84) y"}
66: {id: "85", name: "(85) z"}
67: {id: "86", name: "(86) a"}
68: {id: "9", name: "(9) b"}
我检查了很多例子,我都试过了,但没有一个对我有用
我先试了这个:
obj.sort((a, b) => {
return a.id > b.id;
})
然后,
obj.sort((a,b) => (a.id > b.id) ? 1 : ((b.id > a.id) ? -1 : 0));
有人可以帮忙吗?
最佳答案
您不需要强制为 -1、1 和 0 结果,因为如果结果为负数,顺序将保持不变,如果为正数,它将交换,因此您只需减去它们即可:
let arr = [{id: "83", name: "(83) x"},
{id: "84", name: "(84) y"},
{id: "85", name: "(85) z"},
{id: "86", name: "(86) a"},
{id: "9", name: "(9) b"}];
let resp = arr.sort((a, b) => parseInt(a.id) - parseInt(b.id));
console.log(resp);
关于javascript - 如何根据字符串对对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55293071/