当前位置: 首页 > 面试题库 >

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

黄靖
2023-03-14
问题内容

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

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

var myObject = {'A': 'Athens', 'B':'Berlin'};

因为它们的行为都相同,并且typeof(myArray) == typeof(myObjects)(两者都产生“对象”)。

这些变体之间有什么区别吗?


问题答案:

实际上,javascript中的所有内容都是对象,因此您可以通过在Array对象上设置任意属性来“滥用”Array对象。但是,这应该被认为是有害的。数组用于数字索引数据-对于非数字键,请使用对象。

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

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

alert(myArray.length);

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



 类似资料:
  • 我是Node.js的新手,我正在从数据库(操作)中获取一些数据。每个操作都在另一个表中注册了许多图像,这样我就可以通过操作ID获取它们。 我正在尝试将这些图像的数组添加到相关操作中,这样我就可以在前端循环遍历它们。 在php中,我经常这样做: javscript/node.js中有类似的内容吗?我尝试了下面代码中描述的一些事情,但没有像预期的那样工作。 这是我的控制器: 操作图像数组必须是每个操作

  • 我正在尝试将ArrayList添加到Jlist,但我给出的唯一理解方法是编写如下代码: 让我困惑的是,为什么我不能像这样直接把数组列表添加到Jlist中: 先谢谢你。

  • 我正在做一个javascript迷你项目,用户必须输入一个数字。 这个数字是坐标的endpoint。最后一个坐标,我将存储在我的数组将在格式[数字,数字] 例如,这个数字是3。 我必须将其存储在数组中。 [1,1],[1,2],[1,3],[2,1],[2,2],[2,3],[3,1],[3,2],[3,3] 例如,如果数字是4,数组需要如下所示:[1,1],[1,2],[1,3],[1,4],[

  • 我试图将一个数组的值添加到一个已经存在的数组中,该数组已经有一个值。我的方法是创建一个新的数组,其长度为已有数组的长度+我要添加的值的长度。然后,我只需循环整个数组,并将值添加到新数组的索引中。我的方法如下所示: null 我想不出解决办法

  • 问题内容: 在JavaScript中,我创建了一个像这样的对象: 如果直到运行时才确定属性名称,是否可以在初始创建此对象后为其添加其他属性?即 问题答案: 是。

  • 问题内容: 我想更改字节数组中的值以在MSB中放入较长的时间戳值。有人可以告诉我最好的方法是什么。我不想一点一点地插入值,我认为这是非常低效的。 我想要的是这样的: 这样是可能的。在此字节数组中编辑/插入值的最佳方法是什么。由于字节是原始数据,我不认为有一些直接的实现可以利用吗? 编辑: 似乎比快,所以用它替换上面的代码。如果有误,请纠正我。 问题答案: 有多种方法可以做到这一点: 使用(最佳选择