Notice
Recent Posts
Recent Comments
«   2025/05   »
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
Tags
more
Today
Total
관리 메뉴

차차로그

JS 배열 합치기 본문

JavaScript

JS 배열 합치기

차차한 2022. 8. 8. 09:52

concat()

const arr1 = [1,2,3];
const arr2 = [4,5,6];
const arr3 = [7,8,9];
console.log(arr1.concat(arr2)); //[1, 2, 3, 4, 5, 6]
console.log(arr1.concat(arr2,arr3)); //[1, 2, 3, 4, 5, 6, 7, 8, 9]
console.log(arr1) //[1, 2, 3]

두 개 이상의 배열을 합쳐 하나의 배열을 리턴한다.

주의 원래 배열에 합쳐지는 것이 아닌 단순히 리턴을 하는 것! (arr1에 concat()을 해도 arr1을 찍으면 원래 배열 그대로임)

const arr1 = [1,2,3];
const arr2 = [4,5,6];
const arr3 = [7,8,9];
const newArr = arr1.concat(arr2,['one', 'two'], arr3);
console.log(newArr); // [1, 2, 3, 4, 5, 6, "one", "two", 7, 8, 9]
console.log(newArr.length); // 11

파라미터로 배열이 올 경우 배열의 요소를 꺼내 새로운 기준이 되는 배열에 추가한다.

따라서 길이는 11이 된다.

 

... spread operator(전개연산자)

const arr1 = [1,2,3];
const arr2 = [4,5,6];
const arr3 = [7,8,9];
console.log(...arr1); // 1,2,3
const newArr = [...arr1, ...arr2, ...arr3];
console.log(newArr); //[1, 2, 3, 4, 5, 6, 7, 8, 9]
const newArr1 = [arr1, arr2, arr3];
console.log(newArr1); //[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

전개연산자는 배열의 요소 하나하나를 리턴한다. 

전개연산자를 사용해서 새로운 배열을 만들 경우 길이가 9가 되지만 전개연산자를 사용하지 않으면 길이가 3인 배열이 만들어진다.

 

push()

const arr1 = [1,2,3];
const arr2 = [4,5,6];
console.log(arr1.push(arr2)) // 4
console.log(arr1) // [1, 2, 3, [4, 5, 6]]
console.log(arr1.push(...arr2)) // 6
console.log(arr1) // [1, 2, 3, 4, 5, 6]

push()를 사용하면 두 배열을 합치고 그 길이를 리턴한다.

이때 주의해야할 점은 push는 배열 그대로를 더하기 때문에 arr1.push(arr2)을 하게 되면 [1, 2, 3, [4, 5, 6]] 가 되어 길이가 4인 배열이 된다. (원래 배열 자체가 변하게 됨!! concat과 다른 점)

배열의 요소 하나하나를 배열에 추가하기 위해서는 전개연산자(...)를 이용해 값을 추가하면 된다.

 

출처

 

[Javascript] 배열 합치기 3가지 방법

지난번에는 배열의 앞, 뒤, 중간에 값을 추가하는 방법을 알아보았습니다. [Javascript] 배열 앞, 뒤에 값 추가, 삭제하기 (1) [Javascript] 배열 중간에 값 추가, 삭제하기 (2) - splice() 함수 이번에는 두

hianna.tistory.com

 

'JavaScript' 카테고리의 다른 글

JS 반복 map(), filter(), reduce()  (0) 2022.08.12
JS 화살표함수  (0) 2022.08.08
JS 배열 값 추가, 삭제하기  (0) 2022.08.08
자바스크립트 addDate() 만들기  (0) 2022.08.05
JS null, undefined + isNaN()  (0) 2022.08.01
Comments