> 웹 프론트엔드 > JS 튜토리얼 > JavaScript_Javascript Tutorial에서 배열, 컬렉션 및 효율성에 대해 이야기하세요.

JavaScript_Javascript Tutorial에서 배열, 컬렉션 및 효율성에 대해 이야기하세요.

黄舟
풀어 주다: 2016-12-20 15:12:11
원래의
862명이 탐색했습니다.

배열은 JavaScript에서 제공하는 내부 개체입니다. 그 안에 있는 요소를 추가(푸시)하고 삭제(이동)할 수도 있습니다. 배열에는 JavaScript를 사용합니다.


JavaScript의 언어 기능으로 인해 일반 개체에 속성을 동적으로 추가하고 삭제할 수 있습니다. 따라서 Object는 JS의 특별한 컬렉션으로 간주될 수도 있습니다. 배열과 객체의 특성을 비교해 보겠습니다.

배열:

새로운 기능: var ary = new Array(); 또는 var ary = [];

추가: ary. push(value);

삭제: ary[n] 삭제;

트래버스: for ( var i=0 ; i < ary.length ; ++i ) ary[i];

 객체:

신규: var obj = new Object(); 또는 var obj = {};

추가: obj[key] = value; )

삭제: delete obj[key];

Traverse: for ( var key in obj ) obj[key];

위의 비교를 통해 다음을 알 수 있습니다. 개체는 완전히 컬렉션으로 사용할 수 있습니다. 팝업 창을 사용하여 무한한 웹 페이지 메뉴(3)를 만들 때, 시뮬레이션된 컬렉션 개체이기도 한 Eric이 구현한 __MenuCache__를 소개했습니다.

Array에서 지정된 값을 검색하려면 전체 배열을 순회해야 합니다.

caba30eefb6ebbbd41890d8c813a4973

Object의 이 기능을 사용하면 고유 문자열 컬렉션을 효율적으로 검색할 수 있습니다. 배열 순회 시간 복잡도는 O(n)인 반면, Object 순회 시간 복잡도는 O( 1입니다. ). 10,000개의 컬렉션을 검색하는 데 드는 비용은 수십 ms에 불과하지만 1,000*1,000개 이상의 검색을 수행하면 Object를 사용하는 것의 이점이 즉시 드러납니다. 그 전에는 100개의 고유 문자를 1000개의 문자열 배열로 매핑하는 작업을 수행했는데, 이 작업에는 25~30초가 걸렸습니다. 나중에 순회용을 Object에서 시뮬레이션한 컬렉션의 멤버 참조로 변경했고 동일한 양의 데이터가 매핑되었습니다. , 1.7~2초만 소요됩니다!!!

컬렉션의 순회 효율성(높은 수준에서 낮은 수준으로): var value = obj[key] > for ( ; ; ) > ). 가장 효율적인 방법은 for(in)입니다. 컬렉션이 너무 크면 for(in)을 사용하여 순회하지 마세요.


위 내용은 JavaScript_Javascript 튜토리얼의 배열, 컬렉션 및 효율성에 대한 내용입니다. 더 많은 관련 내용은 PHP 중국어 웹사이트(www.php.cn)를 참고하세요!


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿