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 중국어 웹사이트의 기타 관련 기사를 참조하세요!