javascript - 使用对象作为数组索引有什么缺点(如果有的话)?

标签 javascript arrays object

我没有读到这是可能的,但凭直觉,我测试了是否可以使用对象作为关联数组中的索引。像这样:

var obj = Object(),
arr = Array();

arr[ obj ] = "things";

console.log( arr[obj] );

它将“事物”记录到控制台。这对我来说似乎具有惊人的灵 active ,我想用它来保存有关节点的信息。

然而,它感觉有点“不对劲”,好像它太灵活了。使用此功能是否有任何我应该注意的低效或警告?

最佳答案

当对象用作属性名称时,该对象将被字符串化 - 所有对象属性都是字符串!这意味着它也失去了自己的身份,不再是唯一的标识符。

var obj = {};
var key = {};
obj[key] = "things"; // create a property with the name String(key)
obj["[object Object]"] // "things"

请注意,您shouldn't use arrays for non-numeric keys .

关于javascript - 使用对象作为数组索引有什么缺点(如果有的话)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24712625/

相关文章:

javascript - 使用 Javascript 变量设置 cookie 域

javascript - 如何使用变量引用对象

javascript - 映射复杂的 JavaScript 对象数组以获取值

sql - 如何删除json数组元素中的对象?

python - 扩展类(Monkey Patching)如何在 Python 中工作?

javascript - 重定向到本地不起作用

javascript - 在打开 alert() 时创建异步 AJAX

javascript - 调整 JavaScript 中排序代码的输入

c++ - 指向抽象类的指针数组

java - 如何替换/删除数组 exp 的求值?