【发布时间】:2013-02-19 03:52:19
【问题描述】:
我有以下数组:
var arr = [];
console.log(arr.length); //Output: 0
arr["1231321"] = "abcd";
console.log(arr.length); //Output: 1231322
arr["1231321".toString()] = "abcd";
console.log(arr.length); //Output: 1231322
arr["a1231321"] = "abcd";
console.log(arr.length); //Output: 0
arr["1231321a"] = "abcd";
console.log(arr.length); //Output: 0
这里是小提琴:http://jsfiddle.net/HcrcR/
当我将我的 arr 更改为 var arr = {}; 时,它就可以工作了。
但是,即使我使用字符串键,它也开始从键中推送数据,这是什么原因呢?
【问题讨论】:
-
你有一个数组。当你使用
arr["key"](非数字键......字符串仍然被转换)时,你正在设置属性,这与它的内容/长度无关 -
当你使用: var arr = {} 你有一个使用键/值对的对象。
标签: javascript arrays hashmap