답변:
이 Array.prototype.push
방법을 사용하여 배열에 값을 추가 하십시오 .
// initialize array
var arr = [
"Hi",
"Hello",
"Bonjour"
];
// append new value to the array
arr.push("Hola");
console.log(arr);
이 push()
함수를 사용하여 단일 호출에서 배열에 둘 이상의 값을 추가 할 수 있습니다 .
// 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]);
}
최신 정보
한 배열의 항목을 다른 배열에 추가하려면 다음을 사용할 수 있습니다 firstArray.concat(secondArray)
.
var arr = [
"apple",
"banana",
"cherry"
];
arr = arr.concat([
"dragonfruit",
"elderberry",
"fig"
]);
console.log(arr);
최신 정보
첫 번째 인덱스를 의미하는 배열의 시작 부분에 값을 추가하려는 경우이 답변에 추가하면 Array.prototype.unshift
이 목적으로 사용할 수 있습니다 .
var arr = [1, 2, 3];
arr.unshift(0);
console.log(arr);
마찬가지로 여러 값을 한 번에 추가 할 수 push
있습니다.
for
(use .forEach
).
length
속성에 대한 액세스를 최적화 할 필요가 없습니다 . 통역사는 그 자체로 놀라운 일을 수행하며, 최적화 여부에 관계없이 실제 세계에서 아무런 차이를 만들지 않습니다. 배열이 너무 커서 최적화 .length
가 실제로 도움이 될 경우, 아마도 배열은 더 이상 올바른 데이터 구조가 아닙니다. 사용하면 forEach
이점이 있지만 각 반복에 대한 함수 호출로 인해 비용이 발생하고 아무것도 절약하지 않기 때문에 성능 향상이 그 중 하나가 될 것이라는 것은 의심의 여지가 있습니다.
length
배열 의 속성은 호출 할 때마다 계산되지 않으며 array
개체에 저장된 변수 이며 배열을 변경할 때만 업데이트됩니다. 따라서 조건 을 포함 arr.length
하는 데 실제로 성능 비용이 없습니다 for
.
forEach
콜백 함수 를 인라인 할 것이고 (일부는 이미 그렇게 할 것입니다.) 런타임 실제로 어셈블러가 아닌 언어에 대해서도 동일한 조언이 적용됩니다.
단일 변수 만 추가하는 경우 제대로 push()
작동합니다. 다른 배열을 추가해야하는 경우 다음을 사용하십시오 concat()
.
var ar1 = [1, 2, 3];
var ar2 = [4, 5, 6];
var ar3 = ar1.concat(ar2);
alert(ar1);
alert(ar2);
alert(ar3);
concat은 영향 ar1
을 ar2
받지 않으며 재 할당되지 않는 한 다음 과 같습니다.
var ar1 = [1, 2, 3];
var ar2 = [4, 5, 6];
ar1 = ar1.concat(ar2);
alert(ar1);
How do I append to an array in JavaScript?
, 그러나 concat
실제로 만들어 새로운 배열을. 그것은 중요한 차이점입니다! 대신 Omnimike의 아래 답변이 실제로 가장 좋습니다 .Push.apply 를 사용 하여 전체 배열을 기존 배열로 푸시하지 않고 새 배열을 만듭니다.
ar1 = ar1.concat(ar2);
에 추가합니다ar1
ar1
추가 ar2
하고 새로운 배열을 반환하는 것입니다. ar1 = ...
해당 코드 줄에서 할당 부분 ( )을 제외하면 원본 ar1
이 실제로 변경되지 않았 음을 알 수 있습니다. 사본을 만들지 않으려면이 필요합니다 push
. 나를 믿지 말고 문서를 믿으 십시오 : "concat () 메소드가 새로운 배열을 반환합니다."에 대한 문서의 첫 문장 concat
.
ar2
위의 어쨌든 Array를 추가 할 때 엉망이됩니다 . .push
시나리오에서 결과는 입니다 = [ar1, [ar2]]
. .concat은이 문제를 해결하지만 속도를 희생하고 새로운 배열을 만듭니다. .push
배열 추가에 올바르게 사용하려면 포함 된 요소를 먼저 반복하고 각 요소를 누릅니다. ar2.forEach(each => { ar1.push(each); });
일부 빠른 벤치마킹 (각 테스트 = 500k 추가 요소 및 결과는 여러 번 실행 된 평균 임)은 다음과 같습니다.
Firefox 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
더 빠름 (160ms 대 185ms)Chrome 6.0 (Mac) :
나는 arr.push()
구문을 더 좋아하지만 arr[arr.length]
적어도 원시 속도로 버전을 사용하는 것이 더 나을 것이라고 생각 합니다. IE 실행 결과를보고 싶습니다.
내 벤치마킹 루프 :
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를 호출 할 수 있다고 언급 할 가치가 있다고 생각합니다. 예를 들면 다음과 같습니다.
var arr = ['first'];
arr.push('second', 'third');
console.log(arr);
결과적으로 push.apply를 사용하여 다음과 같이 다른 배열에 배열을 추가 할 수 있습니다.
var arr = ['first'];
arr.push('second', 'third');
arr.push.apply(arr, ['forth', 'fifth']);
console.log(arr);
어노테이션이있는 ES5 에는 푸시 및 적용이 수행하는 작업 에 대한 자세한 정보 가 있습니다.
2016 업데이트 : spread 를 사용하면 apply
더 이상 필요하지 않습니다 .
var arr = ['first'];
arr.push('second', 'third');
arr.push(...['fourth', 'fifth']);
console.log(arr) ;
Array.prototype.push.apply()
하지만 오히려 사용하려고 합니다.
push
및 apply
배열을 사용 하여 두 개의 배열을 추가 할 수 있습니다 .
var array1 = [11, 32, 75];
var array2 = [99, 67, 34];
Array.prototype.push.apply(array1, array2);
console.log(array1);
에 추가 array2
됩니다 array1
. 이제 array1
포함되어 있습니다 [11, 32, 75, 99, 67, 34]
. 이 코드는 for
배열의 각 항목을 복사하기 위해 루프를 작성하는 것보다 훨씬 간단 합니다.
...
사용하는 경우 const a1 = [] const a2 = [5,6,7] const.push(...a2)
편집 을 적용하는 대신 연산자 를 사용할 수도 있습니다 . syntax highlight
array1.concat(array2)
이 상황에서 사용하겠습니다 . 전화가 push
불필요 해 보인다.
새로운 ES6 스프레드 연산자를 사용 push
하면 두 배열을 사용하여 훨씬 쉽게 연결할 수 있습니다.
var arr = [1, 2, 3, 4, 5];
var arr2 = [6, 7, 8, 9, 10];
arr.push(...arr2);
console.log(arr);
arr2
의 끝에 내용이 추가 arr
됩니다.
현재 대부분의 브라우저에서 지원되는 ECMAScript 5 표준 Javascript apply()
를 추가하는 array1
데 사용할 수 있습니다 array2
.
var array1 = [3, 4, 5];
var array2 = [1, 2];
Array.prototype.push.apply(array2, array1);
console.log(array2); // [1, 2, 3, 4, 5]
Chrome 및 FF 및 IE Edge에서 지원되는 ECMAScript 6 표준 Javascript를 사용하면 spread
연산자를 사용할 수 있습니다 .
"use strict";
let array1 = [3, 4, 5];
let array2 = [1, 2];
array2.push(...array1);
console.log(array2); // [1, 2, 3, 4, 5]
spread
연산자를 대체 할 array2.push(...array1);
함께 array2.push(3, 4, 5);
브라우저가 논리를 생각하면.
보너스 포인트
두 배열의 모든 항목을 저장 하기 위해 다른 변수 를 작성 하려면 다음을 수행하십시오.
ES5 var combinedArray = array1.concat(array2);
ES6 const combinedArray = [...array1, ...array2]
스프레드 연산자 ( ...
)는 컬렉션의 모든 항목을 분산시키는 것입니다.
두 개의 배열을 추가하려는 경우-
var a = ['a', 'b'];
var b = ['c', 'd'];
다음을 사용할 수 있습니다.
var c = a.concat(b);
그리고 g
배열 ( var a=[]
)에 레코드를 추가 하려면 다음을 사용할 수 있습니다.
a.push('g');
이 push()
메소드는 배열 끝에 새 항목을 추가하고 새 길이를 리턴합니다. 예:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Kiwi");
// The result of fruits will be:
Banana, Orange, Apple, Mango, Kiwi
귀하의 질문에 대한 정확한 답변은 이미 답변되었지만 배열에 항목을 추가하는 다른 방법을 살펴 보겠습니다.
이 unshift()
메소드는 배열의 시작 부분에 새 항목을 추가하고 새 길이를 반환합니다. 예:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon", "Pineapple");
// The result of fruits will be:
Lemon, Pineapple, Banana, Orange, Apple, Mango
마지막으로이 concat()
방법은 둘 이상의 배열을 결합하는 데 사용됩니다. 예:
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
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"]
push
: 새로운 요소를 밀어서 원래 배열을 수정합니다. 이것을 잘못 읽고 있습니까, 아니면 편집해야합니까?
이제 ES6 구문을 활용하고 다음을 수행 할 수 있습니다.
let array = [1, 2];
console.log([...array, 3]);
원래 배열을 변경할 수 없습니다.
변수 "i"에 저장된 것과 같이 가장 높은 색인을 알고 있다면
myArray[i + 1] = someValue;
그러나 당신이 모른다면 다음 중 하나를 사용할 수 있습니다
myArray.push(someValue);
다른 답변이 제안했듯이 사용할 수 있습니다.
myArray[myArray.length] = someValue;
배열은 0부터 시작하므로 .length는 가장 높은 인덱스에 1을 더한 값을 반환합니다.
또한 순서대로 추가 할 필요가 없으며 실제로 다음과 같이 값을 건너 뛸 수 있습니다.
myArray[myArray.length + 1000] = someValue;
이 경우 사이의 값은 정의되지 않은 값을 갖습니다.
따라서 JavaScript를 반복 할 때 값이 실제로 해당 지점에 존재하는지 확인하는 것이 좋습니다.
다음과 같은 방법으로 수행 할 수 있습니다.
if(myArray[i] === "undefined"){ continue; }
배열에 0이 없다고 확신하면 다음과 같이하십시오.
if(!myArray[i]){ continue; }
물론이 경우 myArray [i] 조건으로 사용하지 않아야합니다 (인터넷을 통해 일부 사람들은 i가 가장 큰 인덱스보다 클수록 정의되지 않은 값을 반환합니다. 그릇된)
"undefined"
. 읽어야합니다 void 0
! "undefined"
는 문자열 "undefined" !== void 0
이므로 if(myArray[i]
index의 배열 i
이 내용이 동일한 문자열로 설정되어 있지 않으면 false 입니다 'u'+'n'+'d'+'e'+'f'+'i'+'n'+'e'+'d'
. 또한 사용하지 undefined
말고 대신 사용하십시오 void 0
. void 0
항상 정의되지 않은 값 이기 때문에 undefined
와 같은 것을 통해 정의 function x(undefined) { alert(undefined) } x("hello world")
할 수 있으므로 누군가 실수로 설정 window["undefined"]=1
하거나 유사한 지 확인할 수 없습니다 .
단일 요소 추가
//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
arrName.push('newElemenet1, newElemenet2, newElemenet3')
?
arrName
길이가 길 다고 생각했다 1
.
비파괴적인 요소 추가를 위해 스 니펫을 추가하고 싶을뿐입니다.
var newArr = oldArr.concat([newEl]);
이후 Array.prototype.push가 배열의 끝에 하나 개 이상의 요소를 추가하고 배열의 새 길이를 반환 때때로 우리가 원하는, 우리가 지금처럼 뭔가를 할 수 있도록 바로 새로운 최신의 배열을 얻을 수 있습니다 :
const arr = [1, 2, 3];
const val = 4;
arr.concat([val]); // [1, 2, 3, 4]
아니면 그냥 :
[...arr, val] // [1, 2, 3, 4]
새로운 자바 스크립트 Es 6 기능을 사용하여 수행 할 수 있습니다.
// 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' ]
중복없이 2 개의 배열을 결합하려면 아래 코드를 시도하십시오
array_merge = function (arr1, arr2) {
return arr1.concat(arr2.filter(function(item){
return arr1.indexOf(item) < 0;
}))
}
용법:
array1 = ['1', '2', '3']
array2 = ['2', '3', '4', '5']
combined_array = array_merge(array1, array2)
출력 : [1,2,3,4,5]
단일 항목을 배열에 추가하려면 push()
Array 객체에서 제공 하는 방법을 사용하십시오 .
const fruits = ['banana', 'pear', 'apple']
fruits.push('mango')
console.log(fruits)
push()
원래 배열을 변경합니다.
대신 새 배열을 만들려면 concat()
Array 메서드를 사용하십시오 .
const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat('mango')
console.log(allfruits)
공지 사항 concat()
실제로 배열에 항목을 추가 할 수 있지만 다른 변수에 할당하거나 원래의 배열 (로 그것을 선언에 재 할당 할 수있는 새로운 배열을 생성하지 않는 let
당신이하지 재 할당 캔을 const
) :
const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat('mango')
console.log(allfruits)
let fruits = ['banana', 'pear', 'apple']
fruits = fruits.concat('mango')
배열에 여러 항목을 추가하려면 push()
여러 인수로 항목을 호출하여 사용할 수 있습니다 .
const fruits = ['banana', 'pear', 'apple']
fruits.push('mango', 'melon', 'avocado')
console.log(fruits)
concat()
이전에 본 방법을 사용하여 쉼표로 구분 된 항목 목록을 전달할 수도 있습니다 .
const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat('mango', 'melon', 'avocado')
console.log(allfruits)
또는 배열 :
const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat(['mango', 'melon', 'avocado'])
console.log(allfruits)
앞에서 설명한 것처럼이 메서드는 원래 배열을 변경하지 않지만 새 배열을 반환합니다.
원래에 게시
배열에 단일 값을 추가하려면 push 메소드를 사용하십시오. 배열 끝에 새로운 요소를 추가합니다.
그러나 여러 요소를 추가하려는 경우 요소를 새 배열에 저장하고 두 번째 배열을 첫 번째 배열과 연결하십시오.
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에는 Array에 대한 추가 기능이 없지만 push 및 unshift 가 있습니다. 아래에 배열이 있다고 상상해보십시오.
var arr = [1, 2, 3, 4, 5];
우리는이 배열에 값을 추가하는 것을 좋아합니다 .arr.push (6) 할 수 있으며 배열의 끝에 6을 추가합니다 :
arr.push(6); // return [1, 2, 3, 4, 5, 6];
또한 우리는 unshift를 사용할 수 있습니다. 이것을 적용하는 방법을 살펴보십시오.
arr.unshift(0); //return [0, 1, 2, 3, 4, 5];
배열에 새로운 값을 추가하거나 추가하는 주요 기능입니다.
푸시 방법을 사용할 수 있습니다.
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"]