concat()
메서드는 인자로 주어진 배열이나 값들을 기존 배열에 합쳐서 새 배열을 반환합니다.
구문
var new_array = old_array.concat(value1[, value2[, ...[, valueN]]])
인수
valueN
- 새 배열으로 합쳐질 배열 또는 값입니다. 자세한 설명은 아래를 보십시오.
설명
concat
은 이 메서드를 호출한 배열 뒤에 각 인수를 순서대로 붙인 새 배열을 만듭니다. 인수가 배열이면 그 성분이 순서대로 붙고, 배열이 아니면 그 인수 자체가 붙습니다.
concat
은 this
나 인수로 넘겨진 배열의 내용을 바꾸지 않고 대신 주어진 배열들을 합친 뒤 그것의 얕은 사본(shallow copy)을 반환합니다. 원본 배열의 요소들은 새 배열에 다음과 같은 방법으로 복사됩니다.
- 실제 객체가 아닌 객체 참조:
concat
은 새 배열에 객체 참조를 복사합니다. 원본 배열과 새 배열에서 같은 객체를 가리키게 됩니다. 즉, 참조된 객체가 수정되면 그 내용이 새 배열과 원본 배열 둘 다에서 나타납니다. String
객체나Number
객체가 아닌 문자열과 수:concat
은 새 배열에 문자열과 수의 값을 복사합니다.
참고: 배열이나 값을 이어붙여도 그 원본은 변하지 않습니다. 또 새 배열에 어떤 조작을 가하더라도 원본 배열은 영향을 받지 않습니다. 그 역도 같습니다.
예제
배열 두 개 이어붙이기
다음 코드는 두 개의 배열을 이어붙입니다.
var alpha = ['a', 'b', 'c'], numeric = [1, 2, 3]; var alphaNumeric = alpha.concat(numeric); console.log(alphaNumeric); // 결과: ['a', 'b', 'c', 1, 2, 3]
배열 세 개 이어붙이기
다음 코드는 세 개의 배열을 이어붙입니다.
var num1 = [1, 2, 3], num2 = [4, 5, 6], num3 = [7, 8, 9]; var nums = num1.concat(num2, num3); console.log(nums); // 결과: [1, 2, 3, 4, 5, 6, 7, 8, 9]
배열에 값 이어붙이기
다음 코드는 배열에 세 개의 값을 이어붙입니다.
var alpha = ['a', 'b', 'c']; var alphaNumeric = alpha.concat(1, [2, 3]); console.log(alphaNumeric); // 결과: ['a', 'b', 'c', 1, 2, 3]
표준
표준 | 상태 | 비고 |
---|---|---|
ECMAScript 3rd Edition (ECMA-262) | Standard | 최초 정의. JavaScript 1.2에서 구현됨. |
ECMAScript 5.1 (ECMA-262) The definition of 'Array.prototype.concat' in that specification. |
Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'Array.prototype.concat' in that specification. |
Standard |
브라우저 호환성
기능 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
기본 지원 | 1.0 | 1.0 (1.7 or earlier) | 5.5 | (Yes) | (Yes) |
기능 | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
기본 지원 | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |