javascript - 如何根据字符串对对象进行排序

标签 javascript

我有一个像这样的对象,我需要从中按 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/

相关文章:

javascript - JS : dot notation to nested object

javascript - jQuery 可排序溢出 : hidden; between two lists

javascript - 如果 AJAX REST API 成功或失败,我如何访问成功或错误回调中的请求 header ?

javascript - 为什么在重新分配错误之前在新 block 中使用 let 变量?

c# - 将 GET 变量挂接到 onload JavaScript 事件中

javascript - 函数中的 JavaScript 'this' 在 Node 中代表什么?

javascript - 如何访问 map 内的下一个/上一个对象 - react ?

javascript - 创建非常自定义的 AJAX 请求

java - 如何在谷歌地图上绘制所有路线

javascript - 当对象内部出现 "get"函数时,Javascript 语法是什么?