开发者社区> 问答> 正文

为什么我可以像数组一样将命名属性添加到数组中?

以下两个不同的代码片段似乎与我等效:

var myArray = Array(); myArray['A'] = "Athens"; myArray['B'] = "Berlin"; 和

var myObject = {'A': 'Athens', 'B':'Berlin'}; 因为它们的行为都相同,并且typeof(myArray) == typeof(myObjects)(两者都产生“对象”)。

这些变体之间有什么区别吗? 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-08 10:58:16 428 0
1 条回答
写回答
取消 提交回答
  • 实际上,javascript中的所有内容都是对象,因此您可以通过在Array对象上设置任意属性来“滥用” Array对象。但是,这应该被认为是有害的。数组用于数字索引数据-对于非数字键,请使用对象。

    下面是一个更具体的示例,为什么非数字键不“适合”数组:

    var myArray = Array(); myArray['A'] = "Athens"; myArray['B'] = "Berlin";

    alert(myArray.length); 这不会显示“ 2”,而是显示“ 0”-实际上,没有将任何元素添加到数组,仅将一些新属性添加到了数组对象。

    2020-02-08 10:58:31
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载