当前位置: 首页 > 面试题库 >

通过索引检索JSON对象的属性?

阮星火
2023-03-14
问题内容

假设此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中的对象是 无序 属性的集合。对象是哈希表。

如果希望按字母顺序排列属性,则一种可能的解决方案是在单独的数组中为属性创建索引。
这是对您的对象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]]);

我之前引用的答案提出了一种可重复使用的解决方案,以迭代此类对象。除非您可以将JSON更改为另一个答案中的@JacobRelkin,否则可能会更容易。

1您可能想使用该hasOwnProperty()方法来确保属性属于您的对象,并且不继承自Object.prototype



 类似资料:
  • 问题内容: 例如,我有: 然后,例如,我要通过对该对象进行 排序/反转。然后我想得到这样的东西: 现在,我想知道具有属性的对象的索引,以获取属性标记的值。 我该如何解决这个问题? 问题答案: 正如其他答案所暗示的那样,遍历数组可能是最好的方法。但是我会把它放在它自己的函数中,并使它更抽象一些: 这样,您不仅可以找到包含“ John”的一个,而且可以找到包含令牌“ 312312”的一个: 编辑: 未

  • 本文向大家介绍JavaScript 从对象检索属性,包括了JavaScript 从对象检索属性的使用技巧和注意事项,需要的朋友参考一下 示例 性能特点: 可以从对象检索的属性可能具有以下特征, 可数 不可数 拥有 在使用创建属性时,我们可以设置其特征(“ own”除外)。在对象的直接级别而非原型级别()可用的属性称为自己的属性。Object.defineProperty(ies)__proto__

  • 我想通过对象在Java中的属性来获取列表中对象的索引。 例: 现在,我想获取一个名为“Girish”的对象的索引。请务必让我知道JAVA中的代码。

  • 问题内容: Java中是否有一种方法,只需指定开始索引和结束索引,即可将对象列表从Arraylist获取到另一个ArrayList? 问题答案: 是的,您可以使用以下方法: 这将返回原始列表那部分的视图,它不会复制数据。 如果要复制:

  • 问题内容: 我有要解析的JSON文件。JSON文件(“ myfile”)的格式如下: 我想从语言级别检索键2的值(ŚrednioZaawansowany)。 接下来做什么?我如何迭代呢? 问题答案: 也许您没有使用Java库的最新版本的JSON。 已有很长时间没有更新,而2个月前已更新。 可以在GitHub上找到,这是其仓库的链接:https : //github.com/douglascrock

  • 问题内容: 所有: 现在,我想获取一个标记了对象的列表。我该怎么办? 顺便说一句,如何在这里正式将变量称为“ a”?我知道到目前为止,它是对象的“对象标签”,但是我不知道它的术语是什么。 谢谢! 我为什么需要这个: 在其他语言(例如C)中,如果我重新分配a = 2,则a,b,c应该为2,但是在python中,没有诸如引用之类的东西,因此更改abc的所有值的唯一方法是a = b据我所知= = c =