Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript 배열에서 스프레드 연산자(...) 활용하기

스프레드(spread, ...) 연산자는 배열과 같은 이터러블(iterable) 객체를 0개 이상의 인수가 필요한 자리에 펼쳐서(expand) 전달할 수 있게 해주는 ES6 문법입니다. 이를 활용하면 여러 개의 매개변수를 받는 함수에 배열의 요소들을 개별 인수로 한 번에 넘길 수 있습니다.

즉, add(num1, num2, num3, num4, num5)처럼 다섯 개의 매개변수를 필요로 하는 함수가 있다면, 길이가 5인 배열 앞에 스프레드 연산자만 붙여 add(...arr) 형태로 호출하면 됩니다.

예제 코드

다음은 JavaScript에서 배열에 스프레드 연산자를 적용한 예제입니다.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
    body {
        font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
    }
    .result,
    .sample {
        font-size: 20px;
        font-weight: 500;
        color: blueviolet;
    }
    .sample {
        color: red;
}
</style>
</head>
<body>
<h1>Spread operator for arrays JavaScript</h1>
<div class="sample">[22,55,11,19,55]</div>
<div class="result"></div>
<br />
<button class="Btn">CLICK HERE</button>
<h3>Click on the above button to call the add function and pass the above
array as parameter</h3>
<script>
    let BtnEle = document.querySelector(".Btn");
    let resEle = document.querySelector(".result");
    function add(num1, num2, num3, num4, num5) {
        return num1 + num2 + num3 + num4 + num5;
    }
    let arr = [22, 55, 11, 19, 55];
    BtnEle.addEventListener("click", (event) => {
        resEle.innerHTML = "The sum of the above array = " + add(...arr);
    });
</script>
</body>
</html>

실행 결과

페이지를 실행하면 아래와 같이 배열 [22, 55, 11, 19, 55]이 화면에 표시됩니다.

JavaScript 배열에서 스프레드 연산자(...) 활용하기

'CLICK HERE' 버튼을 클릭하면 −

JavaScript 배열에서 스프레드 연산자(...) 활용하기

버튼 클릭 시 add(...arr)가 호출되면서 배열의 각 요소가 개별 인수로 전달되고, 그 합계인 162(22 + 55 + 11 + 19 + 55)가 화면에 출력됩니다.

스프레드 연산자의 주요 특징

  • 함수 호출: 배열의 요소들을 개별 인수로 펼쳐 전달할 수 있습니다.
  • 배열 복사 및 병합: [...arr1, ...arr2]처럼 기존 배열을 변경하지 않고 새로운 배열을 만들 수 있습니다.
  • 나머지 매개변수(rest parameter)와의 차이: 스프레드는 배열을 개별 값으로 풀어주는 반면, 나머지 매개변수(function f(...args))는 개별 인수들을 하나의 배열로 모읍니다.

이처럼 스프레드 연산자를 활용하면 가변적인 개수의 인수를 다루는 코드를 훨씬 간결하고 직관적으로 작성할 수 있습니다.