>웹 프론트엔드 >JS 튜토리얼 >자바스크립트를 사용하여 배치로 배열을 만드는 방법

자바스크립트를 사용하여 배치로 배열을 만드는 방법

迷茫
迷茫원래의
2017-03-26 15:25:122292검색

JavaScript에는 배열을 일괄적으로 생성하는 방법이 많이 있습니다. 성능을 측정하기 위해 다양한 방법을 사용하여 길이가 100000이고 키와 값이 동일한 배열을 생성했습니다. 동시에 배열 생성에 걸리는 시간을 측정하기 위해 다음 함수를 정의했습니다.

function t(fn) {
     var start = Date.now();
     fn.call(this);
     var end = Date.now();
     return (end - start) + 'ms';
 }

다음은 배열 생성에 일반적으로 사용되는 몇 가지 방법과 소요 시간입니다.

조인 및 분할 사용

이 방법은 작업에 많은 시간을 소비합니다. 2ms 소요

적용 사용

A { 길이: 100000 } 의사 배열, NodeList 여기서 사용되는 인수는 모두 의사 배열(배열형 개체)입니다. 진정한 의미의 배열은 아니지만 "길이 속성"과 "인덱스 속성"을 갖는 개체는 사용할 수 없습니다. 직접 적용하고 호출합니다. 그러나 이런 종류의 의사 배열은 허용됩니다. 우리가 일반적으로 사용하는 Array.prototype.slice(인수)는 이 원칙을 기반으로 합니다.

여기서는 길이가 100000인 의사 배열을 Array 함수에 전달하고 길이가 100000인 배열을 구성한 다음 맵을 사용하여 값을 할당합니다. 어떤 학생들은 Array(100000)를 직접 사용하여 배열을 생성하면 되지 않느냐고 질문할 수 있습니다. 이는 Array(100000)를 통해 생성된 배열의 각 값이 정의되지 않아 맵을 통해 탐색할 수 없기 때문입니다.

Array.from() 사용

ES6의 새로운 메소드로 의사 배열을 배열로 직접 변환할 수 있습니다.

If 의사 배열을 배열로 바꾸면 속도가 많이 떨어집니다.

Array.fill() 사용

먼저 Array.fill()로 배열을 채운 후, map을 통해 하나씩 값을 할당합니다

for 루프 사용

당시 충격을 받았다고 하는데, 0이 12개나 빠졌는지 계속 확인했습니다. 불만족스러워서 push를 사용해 보고 싶습니다

비교한 결과 원래 for 루프 직접 할당은 가장 빠르며 다른 방법은 거의 동일합니다.

그런데 for 루프는 한 문장으로 할 수 있는 일을 세 문장으로 작성하기가 정말 번거롭습니다.

그래서 성능에 큰 요구 사항이 없다면(결국 실제 개발에서는 100,000개 정도의 배열은 없을 것임) Apply와 Array.from을 사용하는 것이 가장 편리합니다.

위 내용은 자바스크립트를 사용하여 배치로 배열을 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.