【发布时间】:2013-07-11 11:10:19
【问题描述】:
我有一个关于 javascript 关联数组的简单、也许有点愚蠢的问题。 以下是我的问题:
var testArr = [];
testArr["0000"] = "00000 - COST CENTER - BALANCE SHEET";
testArr["0017"] = "0017 - Test Team";
testArr["00033"] = "00033 - Test Team ";
testArr["87210"] = "87210 - OFFICE OF THE PRESIDENT";
在这几行代码之后,testArr 自动排序并显示如下:
testArr.87210 = "87210 - OFFICE OF THE PRESIDENT";
testArr.0000 = "00000 - COST CENTER - BALANCE SHEET";
testArr.0017 = "0017 - Test Team";
testArr.00033 = "00033 - Test Team ";
在我的例子中,0000 应该是第一个值和默认值。但正因为如此,它将 87210 设为默认值。我该如何克服这个问题?
编辑:当我在调试器窗口中看到 testArr 时,我看到如下内容。我无法上传图片,但请按照此操作。非常感谢您的帮助。非常感谢!
testArr
[87210] "87210 - OFFICE OF THE PRESIDENT";
[prototype]
0000 "00000 - COST CENTER - BALANCE SHEET";
0017 "0017 - Test Team";
00033 "00033 - Test Team ";
我不太了解它发生的原因。我输入的键是“0000”而不是 0000。所以实际上它应该是一个字符串。请解释
【问题讨论】:
-
JavaScript 对象未排序。 Sort JavaScript object by key 和 Sorting a JavaScript object 可能重复
-
你拥有的是一个具有属性的数组,而不是一个关联数组。属性未排序。
-
我了解 javascript 对象中的按键排序。但我认为这是完全不同的事情。
-
var testArr = []; testArr["\"0000\""] = "00000 - 成本中心 - 资产负债表"; testArr["\"0017\""] = "0017 - 测试团队"; testArr["\"00033\""] = "00033 - 测试团队"; testArr["\"87210\""] = "87210 - 总统办公室";工作为什么?有什么区别?
-
@harimothu:“为什么有效?有什么区别?”它只是似乎有效。如前所述,对象的属性没有排序,因此您获得的顺序是任意的,并且可能因浏览器而异。
标签: javascript jquery associative-array