JavaScript assoziativ array :/

JavaScript assoziativ array :/

本文关键字:array assoziativ JavaScript      更新时间:2023-09-26

JavaScript 中将值存储在关联数组中的最佳方法是什么?我尝试了很多东西,它总是以某种方式刹车。

我尝试了类似的东西:

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

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

我做错了什么?在这里获得一个我可以像在 Java 中一样正确使用的关联数组的最佳方法是什么?

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

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

Object.keys(obj).length

keys(( 函数从哈希中获取一个键数组,因此它将具有正确的长度属性。

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