JavaScript assoziativ array :/
JavaScript assoziativ array :/
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()
方法检查属性是否是对象自己的属性。
相关文章:
- 如何为json对象中的段发送array[]
- Array.length似乎不起作用;console.log则显示其他情况
- 如何迭代Array.prototype函数
- Javascript 新的 Array 和 join() 方法
- Array.lenght = undefined
- Javascript setTimeout for an array
- NodeJS API调用中Array中的Push和Pull元素
- 如何在MongoDB中将String转换为Array
- 为什么我可以在Array属性对象中找到Javascript Array for Each方法
- 您的平台不支持RxJS-Array.observe
- 在Jquery/Javascript中的Array中插入Textbox值
- 通过jQueryAjax一起发布Array和Form数据时出现问题
- Array.every返回false,而不是类型error
- Javascript-通过i=0直接传递array[0]与array[0],array[i]在“;如果“;陈述
- JavaScript Array unshift() 以一种不可变的方式
- 为什么可以't我用Set对象调用Array.prototype.map
- Array方法中的Javascript循环
- 为什么这个array.filter总是不返回任何内容
- 复选框:使用Array.prototype.forEach调用推送选中订单,
- JavaScript assoziativ array :/