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

如何在Javascript数组的开头添加新的数组元素?

云利
2023-03-14
问题内容

我需要在数组的开头添加或添加元素。

例如,如果我的数组如下所示:

[23, 45, 12, 67]

我的AJAX调用的响应是34,我希望更新后的数组如下所示:

[34, 23, 45, 12, 67]

目前,我正打算这样做:

var newArray = [];
newArray.push(response);

for (var i = 0; i < theArray.length; i++) {
    newArray.push(theArray[i]);
}

theArray = newArray;
delete newArray;

有什么更好的方法吗?Javascript是否具有执行此操作的任何内置功能?

我的方法很复杂,O(n)看到更好的实现将真的很有趣。


问题答案:

使用unshift。就像一样push,除了它在数组的开头而不是结尾添加元素。

  • unshift// push-将元素添加到数组的开头/结尾
  • shift// pop -删除并返回数组的第一个/最后一个元素

一个简单的图…

   unshift -> array <- push
   shift   <- array -> pop

和图表:

          add  remove  start  end
   push    X                   X
    pop           X            X
unshift    X             X
  shift           X      X

查看MDN阵列文档。实际上,每种能够从数组中推入/弹出元素的语言都将具有取消/移入(有时称为push_front/
pop_front)元素的能力,您永远不必自己实现这些元素。

如注释中所指出的那样,如果要避免更改原始数组,可以使用concat将两个或更多数组连接在一起的。您可以使用它在功能上将单个元素推到现有数组的前面或后面;为此,您需要将新元素转换为单个元素数组:

const array = [ 3, 2, 1 ]

const newFirstElement = 4

const newArray = [newFirstElement].concat(array) // [ 4, 3, 2, 1 ]

concat也可以附加项目。的参数concat可以是任何类型;如果它们还不是数组,则将它们隐式包装在单元素数组中:

const array = [ 3, 2, 1 ]

const newLastElement  = 0

// Both of these lines are equivalent:
const newArray1 = array.concat(newLastElement)   // [ 3, 2, 1, 0 ]
const newArray2 = array.concat([newLastElement]) // [ 3, 2, 1, 0 ]


 类似资料:
  • 问题内容: 我有以下代码: 这两个附录未编译。那将如何正常工作? 问题答案: 数组的大小无法修改。如果需要更大的数组,则必须实例化一个新数组。 更好的解决方案是使用可以根据需要增长的容器。如果你需要此形式的数组,该方法将为你提供数组。 如果需要将其转换为简单数组… 但是,使用数组执行的大多数操作也可以使用此ArrayList进行:

  • 问题内容: 是否可以在不迭代整个数组的情况下将字符串添加到String数组的开头。 问题答案: 唯一的方法是维护环形缓冲区。也就是说,您有一个计数器,它记住起始位置,然后移动它而不是移动数组中的所有条目。这仅适用于您重新定义“开始”的含义。 请参阅ArrayDeque的源代码,其中包含三个字段 因此,添加到开始像这样 注意:它移动头部,而不是将所有元素向下移动阵列。

  • 我想知道如何在数组末尾添加或追加一个新元素。有什么简单的方法可以在末尾添加元素吗?我知道如何使用StringBuffer,但我不知道如何使用它在数组中添加元素。我更喜欢没有ArrayList或List。我想知道StringBuffer是否能处理整数。

  • 问题内容: 我有这个: 如果我这样做: 然后我得到这个: 但我想要这个: 无需创建新字典。 问题答案: 在Python 2中没有执行此操作的内置方法。如果需要此操作,则需要编写一种以O(1)复杂度在内部操作的方法/函数。 对于Python 3.2和更高版本, 应 使用方法。该方法接受一个参数,该参数指示元素将被移动到的底部()还是顶部()。 最后,如果您想要一种快速,肮脏且 缓慢的 解决方案,则可

  • 问题内容: 我有一个从JSON文件读取的JSON格式对象,该对象包含在一个名为teamJSON的变量中,如下所示: 我想向数组添加一个新项,例如 最后 在写回文件之前。什么是添加到新元素的好方法?我接近了,但是所有双引号都被转义了。我一直在寻找一个很好的答案,但是没有一个案例能解决这个问题。任何帮助表示赞赏。 问题答案: JSON 只是一种 表示法 ;进行所需的更改,以便可以将更改应用于本机 Ja

  • 我试图向数组中添加一个元组(例如,2项元组)。 我得到的是: 找不到接受提供的参数的“=”的重载 提示:我试图超载每个参考书的=: ...但是没有弄对。 有什么想法吗。。。解决方案