gpt4 book ai didi

javascript - 按字符串属性值对 JavaScript 对象排序

转载 作者:行者123 更新时间:2023-12-03 16:36:01 24 4
gpt4 key购买 nike

好的,所以我从这样的服务器获取一些数据:myVar = JSON.parse(xhttp.responseText)。现在,我的 var 看起来像这样:

{
someData1234:{
score: "5",
loc: "NY"
},

someData4321:{
score: "70",
loc: "MH"
},

someData4123:{
score: "43",
loc: "NG"
}
}

我如何对对象进行排序,使其按分数降序排列?我尝试了其他解决方案,但似乎无法正常工作,因为我需要返回相同的对象(或一组对象),但只是重新排序

最佳答案

如前所述,JavaScript object property order is not guaranteed ,因此您必须将数据转换为对象数组,然后进行排序。以下示例使用Object.entriesmap 将初始对象转换为数组,然后通过解析每个对象中的score 中的数值进行排序:

const obj = { someData1234: { score: "5", loc: "NY" }, someData4321: { score: "70", loc: "MH" }, someData4123: { score: "43", loc: "NG" } };
const arr = Object.entries(obj).map(([k, v]) => ({[k]: v}));
const sorted = arr.sort((a, b) => {
return parseInt(a[Object.keys(a)[0]].score) - parseInt(b[Object.keys(b)[0]].score);
});

console.log(sorted);
// [{"someData1234":{"score":"5","loc":"NY"}},{"someData4123":{"score":"43","loc":"NG"}},{"someData4321":{"score":"70","loc":"MH"}}]

关于javascript - 按字符串属性值对 JavaScript 对象排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55114088/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com