如何在JavaScript中将对象(如字符串或数字)附加到数组中?
当前回答
让数组长度属性执行以下操作:
myarray[myarray.length] = 'new element value added to the end of the array';
myarray.length返回数组中的字符串数。JavaScript是从零开始的,因此数组的下一个元素键将是数组的当前长度。
例子:
var myarray = [0, 1, 2, 3],
myarrayLength = myarray.length; // myarrayLength is set to 4
其他回答
如果您知道最高索引(例如存储在变量“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)。
如果只追加一个变量,则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参考,有很多很棒的信息。
有两种方法可以在JavaScript中附加数组:
1) push()方法将一个或多个元素添加到数组的末尾,并返回数组的新长度。
var a = [1, 2, 3];
a.push(4, 5);
console.log(a);
输出:
[1, 2, 3, 4, 5]
2) unshift()方法将一个或多个元素添加到数组的开头,并返回数组的新长度:
var a = [1, 2, 3];
a.unshift(4, 5);
console.log(a);
输出:
[4, 5, 1, 2, 3]
3) concat()方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
var arr1 = ["a", "b", "c"];
var arr2 = ["d", "e", "f"];
var arr3 = arr1.concat(arr2);
console.log(arr3);
输出:
[ "a", "b", "c", "d", "e", "f" ]
4) 可以使用数组的.length属性将元素添加到数组的末尾:
var ar = ['one', 'two', 'three'];
ar[ar.length] = 'four';
console.log( ar );
输出:
["one", "two", "three", "four"]
5) splice()方法通过删除现有元素和/或添加新元素来更改数组的内容:
var myFish = ["angel", "clown", "mandarin", "surgeon"];
myFish.splice(4, 0, "nemo");
//array.splice(start, deleteCount, item1, item2, ...)
console.log(myFish);
输出:
["angel", "clown", "mandarin", "surgeon","nemo"]
6) 您还可以通过指定新索引并赋值来向数组中添加新元素:
var ar = ['one', 'two', 'three'];
ar[3] = 'four'; // add new element to ar
console.log(ar);
输出:
["one", "two","three","four"]
使用新的ES6排列运算符,使用push连接两个阵列变得更加容易:
var arr=[1,2,3,4,5];var arr2=[6,7,8,9,10];arr.push(…arr2);控制台日志(arr);
这会将arr2的内容添加到arr的末尾。
Babel REPL示例
只想添加一个片段,用于非破坏性地添加元素。
var newArr = oldArr.concat([newEl]);