gpt4 book ai didi

javascript - 按子键值对 JSON 对象的子键进行排序

转载 作者:行者123 更新时间:2023-12-03 12:27:12 25 4
gpt4 key购买 nike

我正在寻找一种方法,使用它们的子项 对我的三个主要 JSON 键(中性)进行排序y-键的值。

这就是 JSON 对象的设置方式:

{
"chartSeries" : {
"negative" : [ {
"y" : 1505,
"url" : "http://www.test.com/1"
}, {
"y" : 425,
"url" : "http://www.test.com/2"
}, {
"y" : 1046,
"url" : "http://www.test.com/3"
} ],
"neutral" : [ {
"y" : 10,
"url" : "http://www.test.com/4"
}, {
"y" : 1,
"url" : "http://www.test.com/5"
}, {
"y" : 2,
"url" : "http://www.test.com/6"
} ],
"positive" : [ {
"y" : 230,
"url" : "http://www.test.com/7"
}, {
"y" : 50,
"url" : "http://www.test.com/8"
}, {
"y" : 483,
"url" : "http://www.test.com/9"
} ]
}
}

假设我想按 y 的值降序对 值进行排序,那么我的 JSON 应如下所示:

{
"chartSeries" : {
"negative" : [ {
"y" : 1505,
"url" : "http://www.test.com/1"
}, {
"y" : 1046,
"url" : "http://www.test.com/3"
}, {
"y" : 425,
"url" : "http://www.test.com/2"
} ],
"neutral" : [ {
"y" : 10,
"url" : "http://www.test.com/4"
}, {
"y" : 2,
"url" : "http://www.test.com/6"
}, {
"y" : 1,
"url" : "http://www.test.com/5"
} ],
"positive" : [ {
"y" : 230,
"url" : "http://www.test.com/7"
}, {
"y" : 483,
"url" : "http://www.test.com/9"
}, {
"y" : 50,
"url" : "http://www.test.com/8"
} ]
}
}

请注意负数元素如何按其 y 值降序排列,中性元素和正数元素的值完全按照相同的顺序排序。

我尝试使用 JSON.parse() 将其解析为 Javascript 对象,然后使用排序函数:

function sortResults(data, prop, asc) {
sorted_data = data.sort(function(a, b) {
if (asc) return (a[prop] > b[prop]);
else return (b[prop] > a[prop]);
});
return sorted_data;
}

但我只是在调试器中收到“TypeError: data.sort is not a function”。

欢迎任何解释或建议!

最佳答案

并且不要忘记添加 paseInt() 以确保所有键都是整数。当年我在思考这个问题时度过了一段有趣的时光。

关于javascript - 按子键值对 JSON 对象的子键进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24139942/

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