바로 이런 곳이 펼침 연산자를 사용하기에 적합합니다. 펼침 연산자를 slice()
메서드와 함께 사용하면 하위 배열을 목록으로 변환해 대괄호 안에 작성할 수 있습니다. 실제로 배열처럼 보이기도 합니다. 더 중요한 것은 원래 배열에 영향을 주지 않고 새로운 배열을 생성해준다는 점입니다.
arrays/spread/spread.js
function removeItem(items, removable) { const index = items.indexOf(removable); return [...items.slice(0, index), ...items.slice(index + 1)]; }
위 코드에서 살펴볼 점이 몇 가지 있습니다. 우선 조작이 없습니다. 또한, 읽기 쉽고 간결합니다. 재사용할 수 있으며 예측 가능합니다. 간단히 말해서 우리가 좋아하는 특징을 모두 갖추고 있습니다.
사실 이 코드를 더 개선할 수도 있습니다. TIP 23 filter( )와 find( )로 데이터의 부분집합을 생성하라에서 배열의 특정 항목을 제거하는 함수를 전달하는 방법을 살펴보겠습니다. 같은 작업을 수행하는 방법은 많습니다. 여러분의 의도를 가장 잘 전달하는 방법을 선택하세요.
이건 시작에 불과합니다. 펼침 연산자를 이용하면 몇 글자만으로 배열의 항목을 빠르게 꺼낼 수 있습니다. 그리고 여러분이 늘 쉽고 빠르게 인식할 수 있는 데이터 구조로 다시 넣을 수 있습니다.
앞서 살펴본 예제 네 개는 모두 잘 작동합니다. 그렇지만 펼침 연산자가 가장 읽기 쉽고, 결과를 예측하기도 가장 쉽습니다.