用JavaScript在关联数组中存储值的最佳方法是什么?我尝试了很多事情,但总会以某种方式刹车。
我尝试了类似的东西:
var test = [];
for(var prop in json) {
test[prop] = json[key];
}
这有效,我得到一个很酷的阵列,然后我可以实际使用。但是,当应该有10个项目时,调用test.length给我3,而应该至少有8个项目时给我0。
我做错了什么?可以使用类似于Java中的关联数组的最佳方法是什么?
一切都是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] 删除。
我来说两句