2016-09-02 2 views
0

매우 큰 자바 스크립트 배열 (예 : 250,000 개의 숫자)에서 최소값과 최대 값을 쉽게 얻을 수 있습니까? JavaScript : 매우 큰 배열의 최소값과 최대 값?

나는이 방법을 사용하려했지만 작동하지 않습니다 JavaScript: min & max Array values?

내가 브라우저에서 내가 "최대 호출 스택의 크기 초과"다면 내가 어떤 오류가 발생하지 않는으로 VisualStudio에서 디버깅 해요 .

예제 코드 :

var max = Math.max.apply(-Infinity, arr); 
var min = Math.min.apply(Infinity, arr); 

"편곡은"내 매우 큰 배열입니다.

+0

먼저, 첫 번째 인자는 상황이다. 'null'또는 'this'여야합니다. 둘째, 항상 사용자 정의 루프로 돌아갈 수 있습니다. 그게 가장 안전한 옵션입니다. – Rajesh

+0

코드에 어떤 문제가 있습니까? 크롬이 작동 중입니다. 나를 위해 – pietro909

+0

코드도 작동합니까, 어떤 브라우저를 사용하고 있습니까? –

답변

0

안전하게 Math.min() 또는 Math.max()을 사용할 수 없습니다 언급 한 크기의 큰 배열의 경우 나

var min = Math.min.apply(Math, array); 
var max = Math.max.apply(Math, array); 
+0

null, this 또는 Math를 사용하여 시도했는데 효과는 항상 동일합니다. 내가 설명한 것처럼 큰 배열에서 사용하려고 했습니까? 이 코드는 더 작은 테이블에서 작동하기 때문에 (65K 요소로 시도했습니다). – PAPP

+0

큰 배열을 사용하지 않았으므로 한 번 확인해 봅시다. –

+0

브라우저 세션에 따라 스택 오버플로가 발생하지 않도록 인수를 150-300 K로 전달해야 할 때 보장 할 수 없습니다. 대형 배열은'Math.min()'또는'Math.max()'에 의해 수행 될 수 없습니다. – Redu

0

을 위해 잘 작동된다. 나는 이것이 어떻게 행해져 야하는지 믿습니다.

var arr = new Array(1000000).fill().map(_=> ~~(Math.random()*10000000)), 
 
findMax = a => a.reduce((res,cur) => res < cur ? cur : res ,-Infinity); 
 
console.log(findMax(arr));
적용의

관련 문제