gpt4 book ai didi

javascript - 使用 Prototype JS 迭代 json 对象数组并根据键对其进行排序

转载 作者:行者123 更新时间:2023-12-02 16:55:04 26 4
gpt4 key购买 nike

抱歉,如果这个问题重复,但我必须问它。我正在使用原型(prototype) JS 从文件中读取 JSON 数据。 JSON 数据如下所示;

{
"metaData": {
"date": "2014-10-06"
},
"listOf": [
{
"fname": "bill",
"id": 23
},
{
"fname": "tom",
"id": 35
},
{
"fname": "jerry",
"id": 12
},
{
"fname": "batman",
"id": 68
},
{
"fname": "superman",
"id": 55
},
{
"fname": "sp-m/super",
"id": 55
},
]
}

在我的代码中,我需要访问“listOf”键/数组,然后我想循环遍历每个元素并根据“fname”键对这些元素进行排序。我正在通过 ajax 请求读取这些数据。下面是该代码;

new Ajax.Request('/file.json', {
method:'get',
onSuccess: function(transport){
var json = transport.responseText.evalJSON();
console.log(json);
}
});

现在 VAR JSON 包含所需数据,但我不知道如何访问“listOf”数据并迭代它。

我尝试像这样使用 .each 函数;

json.list.each(alert);

但它只打印了“object OBJECT”。

请给我一些帮助来解决此问题。

P.S: 请尝试使用原型(prototype) JS 来回答,但不要使用 Jquery。

最佳答案

您可以使用其名称访问 listOf 集合属性:

json.listOf

因此,如果您想对数组进行排序,您可以尝试使用 .sort() JavaScript 方法:

json.listOf.sort(function(a, b) {
if (a.fname > b.fname) {
return 1;
} else if (a.fname < b.fname) {
return -1;
}
return 0;
});

// At this stage json.listOf will contain the sorted in-place array using the `fname` property

这是一个 sample jsfiddle以实际行动说明这一点。

关于javascript - 使用 Prototype JS 迭代 json 对象数组并根据键对其进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26243746/

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