JavaScript关联数组:/

没有代码

用JavaScript在关联数组中存储值的最佳方法是什么?我尝试了很多事情,但总会以某种方式刹车。

我尝试了类似的东西:

var test = [];

for(var prop in json) {
     test[prop] = json[key];    
}

这有效,我得到一个很酷的阵列,然后我可以实际使用。但是,当应该有10个项目时,调用test.length给我3,而应该至少有8个项目时给我0。

我做错了什么?可以使用类似于Java中的关联数组的最佳方法是什么?

米洛斯·拉西奇(Milos Rasic)

一切都是JavaScript中的对象。foo ['bar']与foo.bar相同。Array只是具有一些预定义方法的对象,这些对象可以使您模仿PHP中的数字数组或几乎任何其他语言的数组。JavaScript对象的工作方式类似于PHP中的关联数组。通用的非PHP名称是哈希。

因此,要解决长度问题,它是数组对象的预定义属性。在不是数组的对象上使用它不会获得预期的结果。要计算对象中的属性数量,可以使用

Object.keys(obj).length

在现代浏览器中。keys()函数从哈希中获取键数组,因此它将具有正确的length属性。

如果您希望支持较旧的浏览器,则必须遍历对象属性并手动对其进行计数。请注意,这for (var prop in json)还将遍历原型链中每个对象的属性,因此您可能想使用hasOwnProperty()method检查属性是否是对象自身的属性

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章