| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- 네트워크
- 소프트웨어공학
- 빅데이터
- 웹개발
- 데이터구조
- 프로그래밍언어
- 프로그래밍
- 머신러닝
- 자바스크립트
- 컴퓨터과학
- 알고리즘
- 데이터분석
- 데이터베이스
- 딥러닝
- 사이버보안
- 디자인패턴
- 인공지능
- 네트워크보안
- 컴퓨터비전
- 데이터과학
- 파이썬
- 보안
- 버전관리
- I'm Sorry
- 자료구조
- 클라우드컴퓨팅
- Yes
- 소프트웨어
- springboot
- 컴퓨터공학
- Today
- Total
스택큐힙리스트
자바스크립트에서 배열을 어떻게 비울 수 있나요? 본문
이 질문에 대한 답변은 community effort 입니다. 이 게시물을 개선하기 위해 기존 답변을 수정하십시오. 새로운 답변이나 상호 작용은 현재 허용되지 않습니다.
배열을 비울 수 있는 방법이 있나요? 가능하다면 .remove()로 비울 수 있을까요?
예를 들면,
A = [1,2,3,4];
어떻게 그것을 비울 수 있나요?
답변 1
기존 배열을 지우는 방법들: A
번역하기
방법 1
(이것은 내 원래 답변이었습니다.)
A = [];
이 코드는 변수 A을 새로운 빈 배열로 설정합니다. 이것은 원래 배열 A에 대한 참조가 다른 곳에 없는 경우 완벽합니다. 왜냐하면 이것은 사실상 새로운 (빈) 배열을 생성하기 때문입니다. 이 방법을 사용할 때는 다른 변수나 속성에서 이 배열을 참조하고 있으므로 원래 배열이 변경되지 않도록 주의해야합니다. 오직 A 변수로만 배열에 참조하는 경우에만 사용하세요.
이것은 또한 가장 빠른 해결책입니다.
이 코드 샘플은 이 방법을 사용할 때 발생할 수 있는 문제를 보여줍니다.
var arr1 = ['a','b','c','d','e','f'];
var arr2 = arr1; // Reference arr1 by another variable
arr1 = [];
console.log(arr2); // Output ['a','b','c','d','e','f']
방법 2 (suggested에 의해 Matthew Crumley)
A.length = 0
이것은 길이를 0으로 설정하여 # $$$$ &! ^ $ &로 수행됩니다. 또한 ECMAScript 5에서 엄격한 모드를 사용할 때 배열의 길이 속성이 읽기/쓰기 속성이기 때문에 작동합니다.
방법 3 (suggested에 의해 Anthony)
A.splice(0,A.length)
.splice()를 사용하면 완벽하게 작동하지만, .splice() 함수는 모든 제거된 항목을 포함하는 배열을 반환하기 때문에 실제로 원래 배열의 복사본을 반환합니다. 벤치마크에서는 이것이 성능에 전혀 영향을 미치지 않는 것으로 나타났습니다.
방법 4 (suggested에서 tanguy_k에 의해)
while(A.length > 0) {
A.pop();
}
이 해결책은 매우 간결하지 않으며, 원래 답변에서 참조된 이전 벤치마크와는 달리 가장 느린 솔루션이기도 합니다.
성능
기존 배열을 지우는 모든 방법 중에서, 2번째와 3번째 방법은 성능이 매우 유사하며 4번째 방법보다 훨씬 빠릅니다. 이 페이지를 참고하세요. benchmark.
위의 Diadistis가 그들의 answer 아래로 지적한 대로, 위에 설명된 네 가지 방법의 성능을 결정하는 데 사용된 원래 기준은 결함이 있었습니다. 원래 벤치마크는 클리어한 배열을 재사용하여 두 번째 반복에서 이미 비어 있던 배열을 지웠습니다.
다음 벤치마크는 이 결함을 수정합니다: http://jsben.ch/#/hyj65. 이것은 #1 방법(원래 배열을 변경하지 않는 방법)을 제외하고 #2(길이 속성)와 #3(스플라이스) 방법이 가장 빠르다는 것을 명확히 보여줍니다.
이것은 매우 논란이 되는 핫 토픽이었습니다. 실제로는 많은 올바른 답변이 있으며, 오랫동안 채택된 답변으로 표시된 이유로 모든 방법을 여기에 포함하겠습니다.
답변 2
자바스크립트에서 배열을 비우는 방법을 알고 있으면 프로그램을 작성하는 데 필수적인 기술입니다. 배열은 여러 개의 값을 저장할 수 있는 자료형이며, 일반적으로 프로그램에서 다양한 용도로 사용됩니다. 그러나 때로는 배열에 저장된 값을 모두 삭제하고 싶을 때가 있습니다. 이 문제를 해결하기 위해 자바스크립트에서 제공하는 두 가지 방법을 살펴보겠습니다.
첫 번째 방법은 간단하게 배열의 길이를 0으로 설정하는 것입니다. 이 방법은 배열에 저장된 모든 값을 제거합니다. 예를 들어, 다음과 같이 배열을 선언하고 초기화합니다.
```
let arr = [1, 2, 3, 4, 5];
```
이제 배열의 길이를 0으로 설정하면 배열에 저장된 모든 값이 사라집니다.
```
arr.length = 0;
console.log(arr); // []
```
두 번째 방법은 splice() 함수를 사용하는 것입니다. 이 함수는 배열의 특정 위치에서 값을 추가하거나 삭제하는 데 사용됩니다. 배열의 처음부터 끝까지 모든 값을 삭제하려면 인덱스 0부터 배열의 길이까지 값을 삭제하면 됩니다.
```
let arr = [1, 2, 3, 4, 5];
arr.splice(0, arr.length);
console.log(arr); // []
```
위의 예제에서 splice() 함수는 인덱스 0부터 배열의 길이까지 모든 값을 삭제합니다.
따라서, 자바스크립트에서 배열을 비우는 방법에 대해서 설명드렸습니다. 배열을 비우는 방법은 프로그래밍에서 빈번하게 발생하는 문제 중 하나이므로, 이를 잘 기억해두시기 바랍니다.