gpt4 book ai didi

javascript - 按索引检索 JSON 对象的属性?

转载 作者:IT老高 更新时间:2023-10-28 12:47:26 27 4
gpt4 key购买 nike

假设这个 JSON 对象:

var obj = {
"set1": [1, 2, 3],
"set2": [4, 5, 6, 7, 8],
"set3": [9, 10, 11, 12]
};

“set2”属性可以这样检索:

obj["set2"]

有没有办法按索引检索“set2”属性?它是 JSON 对象的第二个属性。这不起作用(当然):

obj[1]  

所以,假设我想检索 JSON 对象的第二个属性,但我不知道它的名称 - 那我该怎么做呢?

更新: 是的,我知道对象是无序属性的集合。但我不认为浏览器会混淆 JSON 文字/字符串定义的“原始”顺序。

最佳答案

JavaScript 中的对象是 无序 属性的集合。对象是哈希表。

如果您希望属性按字母顺序排列,一种可能的解决方案是在单独的数组中为您的属性创建索引。就在几个小时前,我在 Stack Overflow 上回答了一个您可能想查看的问题:

以下是针对您的对象的快速调整1:

var obj = {
"set1": [1, 2, 3],
"set2": [4, 5, 6, 7, 8],
"set3": [9, 10, 11, 12]
};

var index = [];

// build the index
for (var x in obj) {
index.push(x);
}

// sort the index
index.sort(function (a, b) {
return a == b ? 0 : (a > b ? 1 : -1);
});

那么你就可以做到以下几点:

console.log(obj[index[1]]);

answer I cited早先提出了一种可重用的解决方案来迭代这样的对象。除非您可以将 JSON 更改为 @Jacob Relkin suggested in the other answer ,这可能更容易。


1 您可能想使用 hasOwnProperty()方法来确保属性属于您的对象,而不是从 Object.prototype 继承。

关于javascript - 按索引检索 JSON 对象的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4044845/

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