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


当前回答

如果arr是数组,而val是要添加的值,请使用:

arr.push(val);

E.g.

var arr=[‘a’,‘b’,‘c’];arr.push('d');控制台日志(arr);

其他回答

如果您知道最高索引(例如存储在变量“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)。

只想添加一个片段,用于非破坏性地添加元素。

var newArr = oldArr.concat([newEl]);

push()将一个新元素添加到数组的末尾。

pop()从数组末尾删除元素。

要将对象(如字符串或数字)附加到数组,请使用:

array.push(toAppend);

附加单个元素

// Append to the end
arrName.push('newName1');

// Prepend to the start
arrName.unshift('newName1');

// Insert at index 1
arrName.splice(1, 0,'newName1');
// 1: index number, 0: number of element to remove, newName1: new element


// Replace index 3 (of exists), add new element otherwise.
arrName[3] = 'newName1';

附加多个元素

// Insert from index number 1
arrName.splice(1, 0,'newElemenet1', 'newElemenet2', 'newElemenet3');
// 1: index number from where insert starts,
// 0: number of element to remove,
//newElemenet1,2,3: new elements

附加一个数组

// Join two or more arrays
arrName.concat(newAry1, newAry2);
//newAry1,newAry2: Two different arrays which are to be combined (concatenated) to an existing array

如果只追加一个变量,则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参考,有很多很棒的信息。