>  기사  >  웹 프론트엔드  >  JavaScript로 배열을 일괄 생성하는 방법에 대한 자세한 소개(그림)

JavaScript로 배열을 일괄 생성하는 방법에 대한 자세한 소개(그림)

黄舟
黄舟원래의
2017-03-22 14:30:141703검색

js를 기반으로 배열을 일괄 생성하는 방법을 살펴보겠습니다. Javascript에는 성능을 측정하기 위해 배열을 일괄 생성하는 방법이 많이 있습니다. , 다양한 방법을 사용하여 길이가 100000인 배열을 만들었습니다. 키와 값이 동일한 배열입니다. 동시에 배열을 생성하는 데 걸리는 시간을 측정하기 위해 다음 함수

를 정의했습니다.

 function t(fn) {
   var start = Date.now();
   fn.call(this);
   var end = Date.now();
   return (end - start) + 'ms';
}
다음은 배열을 생성하는 데 일반적으로 사용되는 몇 가지 방법과 소요 시간입니다. 🎜 >

결합 및 분할 사용

이 방법은 제거 후

작업에 많은 시간을 소비합니다. 지도 2ms만 소요됩니다

사용 적용

A { 길이: 100000 } 여기서는 의사 배열, Node

List 및 인수가 모두 의사 배열(

array

과 유사한 객체)입니다. " length속성"과 "index속성"을 갖는 객체는 배열의 메서드를 직접 사용할 수 없지만 Apply 및 Call에서는 이 의사를 허용할 수 있습니다. -배열. 우리가 일반적으로 사용하는 Array.prototype.slice(인수)는 이 원칙을 기반으로 합니다. 여기서는 길이가 100000인 의사 배열을 Array 함수에 전달하고 길이가 100000인 배열을 구성한 다음 맵을 사용하여 값을 할당합니다. 어떤 학생들은 Array(100000)를 직접 사용하여 배열을 생성하면 되지 않느냐고 질문할 수 있습니다. 이는 Array(100000)를 통해 생성된 배열의 각 값이 정의되지 않아 맵을 통해 탐색할 수 없기 때문입니다.

Array.from() 사용

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

의사 배열을 배열로 교체하면 속도가 많이 떨어집니다.

Array.fill() 사용

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

for 루프를 사용하세요

깜짝 놀랐다고 하더군요 그때도 계속 생각하고 0이 적은지 확인해보세요. 만족스럽지 못해서 push로 해보고 싶어요

Push도 엄청 빠르다고 느꼈어요.. .

비교해본 결과 원래 for 루프 직접 할당이 가장 빠르고, 다른 방법도 속도는 거의 같습니다.

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

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

위 내용은 JavaScript로 배열을 일괄 생성하는 방법에 대한 자세한 소개(그림)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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