gpt4 book ai didi

javascript - 如何以数字方式访问 Javascript 对象的成员?

转载 作者:行者123 更新时间:2023-11-30 07:27:04 24 4
gpt4 key购买 nike

例如,我有以下 Javascript 对象:

var Object = {
Person_A: { name: 'James', age: 40, country: 'Spain' },
Person_B : { name: 'Smith', age: 50, country: 'France' }
}

我想知道对象 Object 中有多少属性,并以数字方式访问这些属性,例如通过 Object[n]

直到现在(我不怎么使用 Javascript 对象,但在使用 AJAX 时确实使用 JSON 作为返回格式)我不知道 Javascript 对象没有长度方法,不能以数字方式访问。

我尝试将 Javascript 对象转换为与我进行 AJAX 调用时返回的相同类型的 JSON(JSON 作为具有长度方法的对象返回,并且可以通过数字访问 - 只需阅读另一个线程,也许我错了 - 现在仔细检查)使用 JSON.parse(JSON.stringify(Object)) 但它只会返回完全相同的对象。

所以,我的问题是,获取像示例这样的对象并使其可通过数字访问并具有 length 方法的最有效方法是什么。

如有任何帮助,我们将不胜感激(请询问您是否需要对我的问题进行任何澄清)。

谢谢。

最佳答案

这不能用意义来完成。 JavaScript 对象的属性没有内在顺序1

length 属性是数组的特殊成员。 (数组只是具有特定 [[prototype]] 并理解如何神奇地更新 length 的对象——并且定义了一些其他内部规则——就是这样!)


评论更新:

如果需要索引,使用数组:

var people = [
{ id: "Person_A", data: { name: 'James', age: 40, country: 'Spain' } },
{ id: "Person_B", data: { name: 'Smith', age: 50, country: 'France' } }
]

people[0].id // "Person_A"

1 JSON“有顺序”仅当序列化为文本时但实现(包括将其转换为 JavaScript 对象的实现)无需访问 [或假设] 顺序即可工作;根据 JSON 标准,没有属性的顺序保证。仅仅因为对象中的属性“看起来”在 JSON(或 JS 对象文字)中排序,并不意味着顺序。

关于javascript - 如何以数字方式访问 Javascript 对象的成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10778436/

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