이 글에서는 주로 JavaScript에서 배열을 지우는 세 가지 방법을 소개합니다. 매우 좋은 참조 값을 가지고 있습니다. 아래 에디터로 살펴보겠습니다
방법 1, splice
var ary = [1,2,3,4]; ary.splice(0,ary.length); console.log(ary); // 输出 [],空数组,即被清空了
방법 2, 길이는 0으로 할당
이 방법은 매우 흥미롭습니다. Java와 같은 다른 언어에서는 배열의 길이가 읽기 전용이므로 할당할 수 없습니다. 예를 들어
int[] ary = {1,2,3,4}; ary.length = 0;
는 Java에서 오류를 보고하고 컴파일에 실패합니다.
JS에서는 가능하며,
var ary = [1,2,3,4]; ary.length = 0; console.log(ary); // 输出 [],空数组,即被清空了
와 같이 배열이 지워진다. 현재 Prototype의 배열의 Clear 방식과 mootools 라이브러리의 배열의 빈 방식이 이 방식을 사용하고 있다. 배열을 지우려면.
방법 3, []에 값을 할당
var ary = [1,2,3,4]; ary = []; // 赋值为一个空数组以达到清空原数组
Ext 라이브러리의 Ext.CompositeElementLite 클래스의 Clear 메소드는 이 메소드를 사용하여 삭제한다.
방법 2는 배열의 다른 속성을 유지하지만 방법 3은 유지하지 않습니다.
많은 사람들은 길이만 재할당하는 방법 2가 더 효율적이라고 생각하는 반면, 방법 3은 객체를 다시 생성하기 때문에 더 효율적이라고 생각합니다. 테스트 후에는 방법 3이 가장 효율적이었습니다. 테스트 코드:
var a = []; for (var i=0; i< 1000000; i++){ a.push(i); } var start = new Date(); //a = []; a.length = 0; var end = new Date(); alert(end - start);
테스트 결과:
td> | IE6 | IE7 | IE8 | IE9 | 파이어폭스 | 사파리 |
Chr
|
||||||||||||||||||||||||
a.length=0 | 94 | 29 | 14 | 1 | 4 | 3 | 1 | ||||||||||||||||||||||||
a=[] | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
위 결과에서 볼 수 있듯이 방법 3이 더 빠르고 효율적입니다.
테스트 결과에 따르면 원래 배열의 다른 속성이 유지되지 않는 경우 Ext에서 사용하는 방법이 더 권장됩니다.
위 내용은 JavaScript에서 배열을 지우는 세 가지 방법에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!