如何在JavaScript中将对象(如字符串或数字)附加到数组中?


当前回答

您可以使用JavaScript Spread运算符语法:

// Initialize the array

var arr = [
    "Hi",
    "Hello",
    "Bangladesh"
];

// Append a new value to the array

arr = [...arr, "Feni"]; 

// Or you can add a variable value

var testValue = "Cool";

arr = [...arr, testValue ];

console.log(arr);

// Final output [ 'Hi', 'Hello', 'Bangladesh', 'Feni', 'Cool' ]

其他回答

在数组上追加项

let fruits = ["orange", "banana", "apple", "lemon"]; /* Array declaration */

fruits.push("avacado"); /* Adding an element to the array */

/* Displaying elements of the array */

for(var i=0; i < fruits.length; i++){
  console.log(fruits[i]);
}

使用新的ES6排列运算符,使用push连接两个阵列变得更加容易:

var arr=[1,2,3,4,5];var arr2=[6,7,8,9,10];arr.push(…arr2);控制台日志(arr);

这会将arr2的内容添加到arr的末尾。

Babel REPL示例

如果您知道最高索引(例如存储在变量“i”中),那么您可以

myArray[i + 1] = someValue;

然而,如果你不知道,那么你可以使用

myArray.push(someValue);

如其他答案所示,或者您可以使用

myArray[myArray.length] = someValue;

注意,数组是从零开始的,因此.length返回最高索引加1。

还要注意,您不必按顺序添加,实际上可以跳过值,如

myArray[myArray.length + 1000] = someValue;

在这种情况下,介于两者之间的值将具有未定义的值。

因此,当在JavaScript中循环以验证某个值是否确实存在时,这是一个很好的做法。

这可以通过以下方式实现:

if(myArray[i] === "undefined"){ continue; }

如果您确定数组中没有任何零,则可以执行以下操作:

if(!myArray[i]){ continue; }

当然,在这种情况下,请确保不要使用myArray[i]作为条件(正如互联网上的一些人根据结尾所建议的,一旦i大于最高索引,它将返回undefined,其结果为false)。

如果您使用的是ES6,则可以使用扩展运算符来执行此操作。

var arr = [
    "apple",
    "banana",
    "cherry"
];

var arr2 = [
    "dragonfruit",
    "elderberry",
    "fig"
];

arr.push(...arr2);

如果只追加一个变量,则push()工作正常。如果需要附加另一个数组,请使用concat():

var ar1=[1,2,3];var ar2=[4,5,6];var ar3=ar1.concat(ar2);警报(ar1);警报(ar2);警报(ar3);

除非重新分配,否则concat不会影响ar1和ar2,例如:

var ar1=[1,2,3];var ar2=[4,5,6];ar1=ar1.concat(ar2);警报(ar1);

关于JavaScript参考,有很多很棒的信息。