배열에 무언가를 추가하는 방법은 무엇입니까?
질문
JavaScript의 배열에 객체 (예 : 문자열 또는 번호)를 어떻게 추가합니까?
답변
array.prototype.push 메서드를 사용하여 배열의 끝에 값을 추가합니다.
// 배열 초기화 var arr = [ "안녕", "안녕하세요", "Bonjour" ] // 어레이에 새 값을 추가합니다 arr.push ( "hola"); console.log (arr);
푸시 () 함수를 사용하여 단일 통화의 배열에 둘 이상의 값을 추가 할 수 있습니다.
// 배열 초기화
VAR ARR = [ "HI", "Hello", "Bonjour", "Hola"];
// 배열에 여러 값을 추가합니다
arr.push ( "salut", "hey");
// 모든 값을 표시합니다
for (var i = 0; i 업데이트 하나의 배열의 항목을 다른 배열에 추가하려면 firstArray.concat (SecondArray)을 사용할 수 있습니다. var arr = [
"사과",
"바나나",
"체리"
]
// 결과를 할당하는 것을 잊지 마십시오. 푸시와 달리 Concat은 기존 배열을 변경하지 않습니다.
arr = arr.concat ([
"Dragonfruit",
"elderberryreberry",
"무화과"
]);
console.log (arr); 업데이트 배열의 시작 (즉, 첫 번째 인덱스)의 시작에 값을 붙이려는 경우이 답변에 대한 추가 사항은 다음과 같은 목적으로 array.prototype.unshift를 사용할 수 있습니다. var arr = [1, 2, 3];
arr.unshift (0);
console.log (arr); 또한 푸시와 같이 한 번에 여러 값을 추가하는 것을 지원합니다. 업데이트 ES6 구문을 사용하는 또 다른 방법은 스프레드 구문으로 새 배열을 반환하는 것입니다.원래 배열은 변경되지 않지만 기능 프로그래밍의 정신을 준수하는 새 항목이 추가 된 새 배열을 반환합니다. const arr = [
"안녕",
"안녕하세요",
"Bonjour",
]
const newarr = [
... arr,
"살트",
]
console.log (newarr); 답변 단일 변수 만 추가하는 경우 푸시 ()를 잘 작동합니다.다른 배열을 추가 해야하는 경우 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 참조에 대한 많은 정보가 많이 있습니다. 답변 일부 빠른 벤치마킹 (각 Test = 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) Google 크롬 6.0 (Mac) : 작은 배열 : 유의 한 차이 없음 (그리고 크롬은 빠릅니다! ~ 38ms 만!)
대형 배열 : 유의 한 차이 없음 (160ms) 나는 arr.push () 구문을 더 좋아하지만 적어도 원시 속도로 arr [arr.length] 버전으로 더 나아질 것 같습니다.나는 IE 실행의 결과를보고 싶습니다. 내 벤치마킹 루프 : 답변 나는 그 푸시가 여러 인수로 호출 될 수 있다고 언급 할 가치가 있다고 생각합니다. 이는 배열에 배열에 추가됩니다.예를 들어: var arr = [ 'first'];
arr.push ( '두 번째', '세 번째');
console.log (arr); 결과적으로 Push.Apply를 사용하여 배열을 다른 배열에 추가로 추가 할 수 있습니다. var arr = [ 'first'];
arr.push ( '두 번째', '세 번째');
arr.push.apply (ARR, [ 'Forth', 'Fifth']);
console.log (arr); 주석이 달린 ES5는 정확히 어떤 푸시와 신청을하는지 더 많은 정보를 가지고 있습니다. 2016 업데이트 : 확산으로 더 이상 신청할 필요가 없습니다. var arr = [ 'first'];
arr.push ( '두 번째', '세 번째');
ARR.PUSH (... [ '넷째', '다섯 번째']);
console.log (arr); 답변 푸시 및 적용 기능을 사용하여 두 개의 배열을 추가 할 수 있습니다. VAR ARRAY1 = [11, 32, 75];
var array2 = [99, 67, 34];
array.prototype.push.Apply (Array1, Array2);
console.log (Array1); Array2 toray1에 ARARY2를 추가합니다.이제 Array1에는 [11, 32, 75, 99, 67, 34]를 포함합니다.
이 코드는 배열의 각 항목과 모든 항목을 복사하는 루프를 쓰는 것보다 훨씬 간단합니다. 답변 새로운 ES6 스프레드 연산자를 사용하여 푸시를 사용하여 두 개의 배열을 결합하면 더 쉽게됩니다. var arr = [1, 2, 3, 4, 5];
var arr2 = [6, 7, 8, 9, 10];
arr.push (... arr2);
console.log (arr); 이것은 ARR2의 내용을 ARR2의 끝에 추가합니다. Babel Reples 예제
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;
}
}
최근댓글