concat 메서드는 배열 내 요소를 배열이 제외된 요소로 만들어준다.
쉽게 말해서, 배열 내부에 있는 모든 요소가 배열 밖으로 꺼내어진다고 이해하면 된다.
이 메서드는 기존 배열을 변경하지 않고 새로운 배열을 반환하기 때문에 IMMUTABLE 하다고 말할 수 있다.
const array1 = ['a', 'b', 'c'];
const array2 = ['d', 'e', 'f'];
const array3 = array1.concat(array2);
console.log(array3);
// expected output: Array ["a", "b", "c", "d", "e", "f"]
concat 메서드는 새로운 배열을 반환하기 때문에 함수에서 리턴할 때는 array3이라는 새로운 배열을 만들지 않고 기존 배열에 concat을 사용하고 리턴해도 괜찮다.
arr.reduce(function (acc, cur) {
return acc.concat(cur);
});