gpt4 book ai didi

javascript - 将项目附加到 JSON 对象中的列表的最佳方法?

转载 作者:行者123 更新时间:2023-11-30 10:47:43 27 4
gpt4 key购买 nike

我正在使用 JavaScript,我有这个 JSON 对象:

var obj ={"name" : "objName",
"dynamicList" :[]};

然后我将一些项目添加到我的列表中,如下所示:

obj.dynamicList["someStringID"] = {"watever"};

重要的是我使用字符串作为列表中每个项目的索引器(我直到最近才知道这可以做到)。

我现在唯一的问题是,每当我请求 obj.dynamicList.lenght 时,我都会得到 0,除非我手动设置正确的数字......我想知道是否有更好的方法将项目添加到我的列表中吗?

谢谢!!

最佳答案

在 Javascript 中,字符串索引并不是真正的索引。它实际上是数组对象的一个​​属性。您可以使用字符串索引设置和获取值,但它实际上是一个具有一些属性的空数组。不仅是.length,还有.sort()、.splice()等数组函数都不行。如果需要使用数组函数,我会使用数字作为索引,使它成为数组中的一个真正的项目。

如果必须使用字符串作为索引,则不能依赖 .length 函数。如果不需要支持版本 9 之前的 IE,@strimp099 建议的 Object.keys 应该可以工作。或者您可能必须创建函数来计算属性的数量,例如:

function len(obj) {
var attrCount = 0;
for(var k in obj) {
attrCount++;
}
return attrCount;
}

然后调用

len(obj.dynamicList);

关于javascript - 将项目附加到 JSON 对象中的列表的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7297336/

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