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

JavaScript 배열 비우기 3가지 방법: 새 배열 할당부터 splice()까지 총정리

JavaScript에서 배열을 비우는 방법은 여러 가지가 있습니다. 각 방법마다 동작 방식과 주의점이 다르므로, 상황에 맞는 방법을 선택하는 것이 중요합니다.

먼저 다음과 같은 배열이 있다고 가정해 보겠습니다.

var array1 = [1, 2, 3, 4, 5, 6, 7];

방법 1: 새로운 빈 배열 할당하기

array1 = [];

위 코드는 기존 변수에 새로운 빈 배열을 할당하는 방식입니다. 원본 배열 array1을 참조하는 다른 변수가 없다면 가장 간단하고 직관적인 방법입니다.

다만 이 방법에는 주의할 점이 있습니다. 만약 다른 변수가 이미 원본 배열을 참조하고 있다면, 해당 참조 변수에는 여전히 기존 배열이 그대로 남아 있게 됩니다.

예제

<html>
<body>
<script>
   var array1 = [1,2,3,4,5,6,7];  // 배열 생성
   var anotherArray = array1;     // anotherArray가 array1을 참조
   array1 = [];                   // 새로운 빈 배열 할당
   document.write(anotherArray);  // 출력 결과: [1,2,3,4,5,6,7]
</script>
</body>
</html>

위 예제에서 array1은 빈 배열이 되었지만, anotherArray는 여전히 원래 배열의 값을 유지하는 것을 확인할 수 있습니다.

방법 2: length 속성을 0으로 설정하기

array1.length = 0;

위 코드는 배열의 length 속성을 0으로 설정하여 모든 요소를 제거하는 방식입니다. 이 방법은 원본 배열 자체를 수정하므로, 이 배열을 참조하는 모든 변수에도 동일하게 적용됩니다.

예제

<html>
<body>
<script>
   var array1 = [1,2,3,4,5,6,7]; // 배열 생성
   var anotherArray = array1;    // anotherArray가 array1을 참조
   array1.length = 0;             // length를 0으로 설정해 배열 비우기
   console.log(anotherArray);    // 출력 결과: []
</script>
</body>
</html>

방법 3: splice() 메서드 사용하기

array1.splice(0, array1.length);

splice() 메서드를 사용하면 인덱스 0부터 배열 끝까지의 모든 요소를 한 번에 제거할 수 있습니다. 이 방법 역시 원본 배열을 직접 수정하므로, 해당 배열을 참조하는 모든 변수가 함께 업데이트됩니다.

예제

<html>
<body>
<script>
   var array1 = [1,2,3,4,5,6,7];      // 배열 생성
   var anotherArray = array1;          // anotherArray가 array1을 참조
   array1.splice(0, array1.length);    // splice()로 배열 비우기
   console.log(anotherArray);          // 출력 결과: []
</script>
</body>
</html>

어떤 방법을 선택해야 할까?

  • 다른 참조가 없는 경우: array1 = []처럼 새 배열을 할당하는 방법이 가장 간단하고 성능 면에서도 유리합니다.
  • 참조 관계를 유지해야 하는 경우: length = 0 또는 splice(0, length) 방식을 사용하세요. 두 방법 모두 원본 배열 객체를 그대로 둔 상태에서 내용만 비우기 때문에, 참조 중인 모든 변수에 변경 사항이 반영됩니다.