可能是重复问题:
JavaScript中用于键/值对的对象与数组之间的区别
我在 JavaScript 中有一个变量,我想要用它作为 哈希表。 我可以这样初始化:
var selected = [];
或者var selected = {};
它确实完成了完全相同的事情。例如,我是这样使用它的:
selected["one"] = 1;
if (selected["one"] == 1) console.log("one is selected");
// result: one is selected
if (selected["two"] != 1) console.log("two is not selected");
// result: two is not selected
selected["one"] = 0;
if (selected["one"] != 1) console.log("one is no longer selected");
// result: one is no longer selected
这两者真的有区别吗?一个是对象,另一个是数组吗?如果是这样,我应该什么时候会遇到问题呢?也就是说,它们在使用中有什么区别,为什么会选择其中之一?
selected["one"]
等同于selected.one
(前者支持任意字符串作为键,后者只支持字母数字)。 - EthanB