How to append something to an array?
如何将对象(如字符串或数字)附加到JavaScript中的数组中?
使用
| 1 2 3 4 5 6 7 8 9 10 11 | // initialize array var arr = [ "Hi", "Hello", "Bonjour" ]; // append new value to the array arr.push("Hola"); console.log(arr); | 
将打印
| 1 | ["Hi","Hello","Bonjour","Hola"] | 
可以使用
| 1 2 3 4 5 6 7 8 9 10 | // initialize array var arr = ["Hi","Hello","Bonjour","Hola" ]; // append multiple values to the array arr.push("Salut","Hey"); // display all values for (var i = 0; i < arr.length; i++) { console.log(arr[i]); } | 
将打印
| 1 2 3 4 5 6 | Hi Hello Bonjour Hola Salut Hey | 
更新
如果要将一个数组的项添加到另一个数组中,可以使用
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | var arr = [ "apple", "banana", "cherry" ]; arr = arr.concat([ "dragonfruit", "elderberry", "fig" ]); console.log(arr); | 
将打印
| 1 | ["apple","banana","cherry","dragonfruit","elderberry","fig"] | 
更新
如果您想将任何值附加到数组的开头(这意味着要附加到第一个索引),那么您可以为此目的使用unshift()。
| 1 2 3 | var arr = [1, 2, 3] arr.unshift(0) console.log(arr) | 
将打印:
| 1 | [0, 1, 2, 3] | 
它还支持像push()方法一样附加多个值。
如果只附加一个变量,那么
| 1 2 3 4 5 6 7 8 | var ar1 = [1, 2, 3]; var ar2 = [4, 5, 6]; var ar3 = ar1.concat(ar2); alert(ar1); alert(ar2); alert(ar3); | 
会吐出来:
| 1 2 3 | "1,2,3" "4,5,6" "1,2,3,4,5,6" | 
concat不影响
| 1 2 | ar1 = ar1.concat(ar2); alert(ar1); | 
将显示:
| 1 | "1,2,3,4,5,6" | 
这里有很多很好的信息
一些快速基准测试(每个测试=500K附加元素,结果是多次运行的平均值)显示如下:
火狐3.6(Mac):
- 小阵列:arr[arr.length] = b 更快(300ms对800ms)
- 大型阵列:arr.push(b) 更快(500ms对900ms)
Safari 5.0(Mac版):
- 小阵列:arr[arr.length] = b 更快(90ms对115ms)
- 大型阵列:arr[arr.length] = b 更快(160毫秒对185毫秒)
谷歌Chrome 6.0(Mac):
- 小阵列:没有显著差异(而且Chrome很快!只有~38毫秒!!)
- 大阵列:无显著差异(160ms)
我更喜欢
我的基准循环:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | function arrpush_small() { var arr1 = []; for (a = 0; a < 100; a++) { arr1 = []; for (i = 0; i < 5000; i++) { arr1.push('elem' + i); } } } function arrlen_small() { var arr2 = []; for (b = 0; b < 100; b++) { arr2 = []; for (j = 0; j < 5000; j++) { arr2[arr2.length] = 'elem' + j; } } } function arrpush_large() { var arr1 = []; for (i = 0; i < 500000; i++) { arr1.push('elem' + i); } } function arrlen_large() { var arr2 = []; for (j = 0; j < 500000; j++) { arr2[arr2.length] = 'elem' + j; } } | 
我认为值得一提的是,push可以用多个参数调用,这些参数将按顺序附加到数组中。例如:
| 1 2 3 | var arr = ['first']; arr.push('second', 'third'); console.log(arr); // ['first', 'second', 'third'] | 
因此,可以使用push.apply将数组追加到另一个数组,如下所示:
| 1 2 | arr.push.apply(arr, ['forth', 'fifth']); console.log(arr); // ['first', 'second', 'third', 'forth', 'fifth'] | 
带注释的ES5有更多关于推送和应用的确切信息。
2016年更新:通过Spread,您不再需要
| 1 2 | arr.push(...['fourth', 'fifth']); console.log(arr) // ['first', 'second', 'third', 'fourth', 'fifth'] | 
可以使用
| 1 2 3 4 | var array1 = [11, 32, 75]; var array2 = [99, 67, 34]; Array.prototype.push.apply(array1, array2); | 
它将在
如果
| 1 | arr.push(val); | 
例如。
| 1 2 3 | arr = ['a', 'b', 'c']; arr.push('d'); console.log(arr); | 
日志:
| 1 | ['a', 'b', 'c', 'd'] | 
使用新的ES6排列运算符,使用
| 1 2 3 4 | var arr = [1, 2, 3, 4, 5]; var arr2 = [6, 7, 8, 9, 10]; arr.push(...arr2); console.log(arr); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; | 
将
babel repl示例
使用
| 1 2 3 | a = [1, 2, 3]; b = [3, 4, 5]; a = a.concat(b); | 
参考:https://developer.mozilla.org/en/javascript/reference/global_objects/array/concat
现在大多数浏览器都支持带ecmascript 5标准的javascript,您可以使用
| 1 2 3 4 5 6 | var array1 = [3, 4, 5]; var array2 = [1, 2]; Array.prototype.push.apply(array2, array1); console.log(array2); // [1, 2, 3, 4, 5] | 
带ECMAScript 6标准的javascript,由chrome、ff和ie-edge支持,您可以使用
| 1 2 3 4 5 6 7 | "use strict"; let array1 = [3, 4, 5]; let array2 = [1, 2]; array2.push(...array1); console.log(array2); // [1, 2, 3, 4, 5] | 
当浏览器思考逻辑时,
加分
如果要创建另一个变量来存储两个数组中的所有项,可以执行以下操作:
ES5 
ES6 
排列运算符(
如果要附加两个数组-
| 1 2 | var a = ['a', 'b']; var b = ['c', 'd']; | 
然后你可以使用:
| 1 | var c = a.concat(b); | 
如果要将记录
| 1 | a.push('g'); | 
在javascript中附加数组有几种方法:
1)
| 1 2 3 | var a = [1, 2, 3]; a.push(4, 5); console.log(a); | 
输出:
| 1 | [1, 2, 3, 4, 5] | 
2)
| 1 2 3 | var a = [1, 2, 3]; a.unshift(4, 5); console.log(a); | 
输出:
| 1 | [4, 5, 1, 2, 3] | 
3)使用
| 1 2 3 4 | var arr1 = ["a","b","c"]; var arr2 = ["d","e","f"]; var arr3 = arr1.concat(arr2); console.log(arr3); | 
输出:
| 1 | ["a","b","c","d","e","f" ] | 
4)可以使用数组的
| 1 2 3 | var ar = ['one', 'two', 'three']; ar[ar.length] = 'four'; console.log( ar ); | 
输出:
| 1 |  ["one","two","three","four"] | 
5)
| 1 2 3 4 | var myFish = ["angel","clown","mandarin","surgeon"]; myFish.splice(4, 0,"nemo"); //array.splice(start, deleteCount, item1, item2, ...) console.log(myFish); | 
输出:
| 1 | ["angel","clown","mandarin","surgeon","nemo"] | 
6)您也可以通过指定一个新索引并分配一个值,将一个新元素添加到数组中:
| 1 2 3 | var ar = ['one', 'two', 'three']; ar[3] = 'four'; // add new element to ar console.log(ar); | 
输出:
| 1 | ["one","two","three","four"] | 
| 1 2 3 4 5 | var fruits = ["Banana","Orange","Apple","Mango"]; fruits.push("Kiwi"); // The result of fruits will be: Banana, Orange, Apple, Mango, Kiwi | 
您的问题的确切答案已经回答,但让我们看看向数组添加项的其他方法。
| 1 2 3 4 5 | var fruits = ["Banana","Orange","Apple","Mango"]; fruits.unshift("Lemon","Pineapple"); // The result of fruits will be: Lemon, Pineapple, Banana, Orange, Apple, Mango | 
最后,使用
| 1 2 3 4 5 6 | var fruits = ["Banana","Orange"]; var moreFruits = ["Apple","Mango","Lemon"]; var allFruits = fruits.concat(moreFruits); // The values of the children array will be: Banana, Orange, Apple, Mango, Lemon | 
如果您知道最高的索引(例如存储在变量"i"中),那么您可以这样做
| 1 | myArray[i + 1] = someValue; | 
但是,如果你不知道,你也可以使用
| 1 | myArray.push(someValue); | 
如其他答案所示,或者您可以使用
| 1 | myArray[myArray.length] = someValue; | 
请注意,数组是从零开始的,所以。length返回最高的索引加上一。
还要注意,您不必按顺序添加,实际上可以跳过值,如
| 1 | myArray[myArray.length + 1000] = someValue; | 
在这种情况下,中间的值将具有未定义的值。
因此,当通过JavaScript循环验证某个值在该点上是否确实存在时,这是一个很好的实践。
这可以通过如下方式实现:
| 1 | if(myArray[i] ==="undefined"){ continue; } | 
如果确定数组中没有任何零,则可以执行以下操作:
| 1 | if(!myArray[i]){ continue; } | 
当然,在这种情况下,请确保不要将其用作myarray[i]的条件(正如一些互联网上的人建议的那样,只要我大于最高的索引,它就会返回未定义的,其值为false)。
现在,您可以利用ES6语法,只需执行以下操作:
| 1 2 | let array = [1, 2]; console.log([...array, 3]); | 
保持原始数组不变。
让array length属性完成以下工作:
| 1 | myarray[myarray.length] = 'new element value added to the end of the array'; | 
myarray.length返回数组中的字符串数。JS是从零开始的,所以数组的下一个元素键将是数组的当前长度。前任:
| 1 2 | var myarray = [0, 1, 2, 3], myarrayLength = myarray.length; //myarrayLength is set to 4 | 
Just want to add a snippet for non-destructive addition of an element.
| 1 | var newArr = oldArr.concat([newEl]); | 
当然,
var a = [
[1, 2],
[3, 4] ];var b = [
["a","b"],
["c","d"] ];b = b.concat(a);
alert(b[2][1]); // result 2
如果使用ES6,可以使用Spread运算符来执行此操作。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | var arr = [ "apple", "banana", "cherry" ]; var arr2 = [ "dragonfruit", "elderberry", "fig" ]; arr.push(...arr2); | 
您可以使用新的javascript ES 6功能:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | // initialize array var arr = [ "Hi", "Hello", "Bangladesh" ]; // append new value to the array arr= [...arr ,"Feni"]; // or you can put a variable value var testValue ="Cool"; arr = [...arr , testValue ]; console.log(arr); // final output [ 'Hi', 'Hello', 'Bangladesh', 'Feni', 'Cool' ] | 
向数组追加值
由于array.prototype.push将一个或多个元素添加到数组末尾并返回数组的新长度,因此有时我们只需要获取新的最新数组,这样就可以执行以下操作:
| 1 2 3 4 | const arr = [1, 2, 3]; const val = 4; arr.concat([val]); // [1, 2, 3, 4] | 
或者只是:
| 1 | [...arr, val] // [1, 2, 3, 4] | 
如果要组合两个数组而不重复,可以尝试下面的代码
| 1 2 3 4 5 | array_merge = function (arr1, arr2) { return arr1.concat(arr2.filter(function(item){ return arr1.indexOf(item) < 0; })) } | 
用途:
| 1 2 3 | array1 = ['1', '2', '3'] array2 = ['2', '3', '4', '5'] combined_array = array_merge(array1, array2) | 
输出:[1,2,3,4,5]
附加单个元素
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | //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'; | 
附加多个元素
| 1 2 3 4 5 | //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 | 
追加数组
| 1 2 3 | //join two or more arrays arrName.concat(newAry1, newAry2); //newAry1,newAry2: Two different arrays which are to be combined (concatenated) to an existing array | 
you.push()输入该值。示例:array.push(value);
如果要将单个值附加到数组中,只需使用push方法。它将在数组末尾添加一个新元素。
但是,如果您打算添加多个元素,那么将这些元素存储在一个新数组中,然后用第一个数组连接第二个数组……无论您希望如何。
| 1 2 3 4 | arr=['a','b','c']; arr.push('d'); //now print the array in console.log and it will contain 'a','b','c','d' as elements. console.log(array); | 
我们在javascript中没有数组的append函数,但是我们有push和unshift,假设您有下面的数组:
| 1 | var arr = [1, 2, 3, 4, 5]; | 
我们喜欢在这个数组中附加一个值,我们可以这样做,arr.push(6),它会在数组的末尾添加6个值:
| 1 | arr.push(6); // return [1, 2, 3, 4, 5, 6]; | 
我们也可以使用unshift,看看我们如何应用它:
| 1 | arr.unshift(0); //return [0, 1, 2, 3, 4, 5]; | 
它们是向数组添加或追加新值的主要函数。
附加单个项目
要将单个项附加到数组,请使用数组对象提供的
| 1 2 3 | const fruits = ['banana', 'pear', 'apple'] fruits.push('mango') console.log(fruits) | 
要创建新的数组,请使用
| 1 2 3 | const fruits = ['banana', 'pear', 'apple'] const allfruits = fruits.concat('mango') console.log(allfruits) | 
请注意,
| 1 2 3 | const fruits = ['banana', 'pear', 'apple'] const allfruits = fruits.concat('mango') console.log(allfruits) | 
| 1 2 | let fruits = ['banana', 'pear', 'apple'] fruits = fruits.concat('mango') | 
附加多个项目
要向数组追加多个项,可以使用
| 1 2 3 | const fruits = ['banana', 'pear', 'apple'] fruits.push('mango', 'melon', 'avocado') console.log(fruits) | 
您还可以使用前面看到的
| 1 2 3 | const fruits = ['banana', 'pear', 'apple'] const allfruits = fruits.concat('mango', 'melon', 'avocado') console.log(allfruits) | 
或数组:
| 1 2 3 | const fruits = ['banana', 'pear', 'apple'] const allfruits = fruits.concat(['mango', 'melon', 'avocado']) console.log(allfruits) | 
请记住,如前所述,此方法不会改变原始数组,但会返回一个新数组。
Originally posted at
您可以使用push方法。
| 1 2 3 4 5 6 7 8 9 | Array.prototype.append = function(destArray){ destArray = destArray || []; this.push.call(this,...destArray); return this; } var arr = [1,2,5,67]; var arr1 = [7,4,7,8]; console.log(arr.append(arr1));// [7, 4, 7, 8, 1, 4, 5, 67, 7] console.log(arr.append("Hola"))//[1, 2, 5, 67, 7, 4, 7, 8,"H","o","l","a"] | 
如果要添加值,可以使用push()。如
如果有数组,可以使用concat()。如
如果你只有一个元素要添加,你也可以尝试长度方法。如
要将对象(如字符串或数字)附加到数组,请使用-
在数组中追加项
| 1 2 3 4 5 6 7 8 9 | 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]); } |