다른 엔진이 .includes를 다른 방식으로 구현할 수 있다고 가정하면 구현과 관련하여 포괄적 인 설명을하기가 어려울 수 있습니다. 그러나 일부 벤치마킹을 통해 속도에 대한 아이디어를 얻을 수 있어야합니다 (테스트가 유일한 확실한 방법이기 때문에).
3. 가지고 순차적 배열()에 전달 루프
2. 기본 순차 배열을 전달
1. 포함(), 전달 : I 세 가지 기능을 테스트 시도 노드 7.0을 사용
순차적 배열의 미리 만들어진 세트
내가 얻은 결과는 어레이 자체의 길이가 중요하지 않은 것으로 보였지만 (원하는대로) 원하는 숫자가 처음부터 얼마나 길 었는지를 제안했습니다. 인덱스 < 20에서 숫자를 찾으려면 for 루프가 약간 더 빨라질 것입니다 (아마도 ~ 15 %?). 더 큰 인덱스가 들어있는 경우에 for()는 for 루프를 사용합니다 (인덱스 500으로 보이는 것보다 ~ 2-3 배 빠름). 그러나 .has()는 이후 색인에서 숫자를 찾기 위해 훨씬 빠르며 (색인 800으로 ~ 25-30x 더 빠름) 색인의 크기는 속도에 거의 영향을 미치지 않습니다 (그러나 세트를 만들려면 시간이 필요함). 분명히 이것들은 다소 제한적인 테스트이며 많은 요인들이 그것들에 영향을 미칠 수 있습니다. 하나의 흥미로운 결과는 집합이 전달 된 배열 (다른 배열이 아닌)에서 만들어지면 집합이 함수로 전달되지 않더라도 포함 속도가 빨라지는 것처럼 보였습니다. for 루프 기능. 어떤 식 으로든 .includes()를 사용하는 캐싱의 일부 유형은 좋을까요?
나는 항상 그 밑에'indexOf'를 사용한다고 생각했지만, 확실하지 않다. ... –
이것은 단지 구문 설탕 일 가능성이 높고 두드러기에서'indexOf'와 같은 방법을 사용하지만 실제로 구현되는 방법은 공급 업체까지 – adeneo
구현이 정의되지 않았습니다. 모든 자바 스크립트 엔진의 출처에 대한 분석을 요구하고 있습니다. 일부는 더 잘 수행되고 일부는 예상보다 나빠질 것입니다. – Norguard