2014-10-04 15 views
0

학습 목적으로, 난 빈 번호를 확인하는 방법을 알고 싶습니다 (또는 문자로 대체) 난수에서.배열의 빈 번호를 확인하십시오

내가 배열에 숫자와 문자를 넣어 :

var numb = [1, 7, 3, a, 4]; 

을 우리는 가장 높은 숫자 또는 낮은 숫자를 모르는이 경우.

숫자 2부터 시작하여 빈 번호 (결과 2, 5 및 6)를 확인하고 싶습니다. 당신의 배열 이상

+3

"빈"숫자의 의미를 이해하지 못합니다. – Paul

+0

어레이에서 '빈 번호'(또는 정의되지 않은 값 일 수 있음)를 바꾸지 않는 이유는 무엇입니까? 그러면 가장 높은 값을 얻을 수 있습니다. –

+0

위의 배열에서 2, 5, 6 번 번호를 얻고 싶습니다. –

답변

3

루프는 최대 max 찾아 배열의 숫자의 존재를 max - 1 - minumum 번 테스트를 반복합니다.

function foo(arr) { 
    var bar = [], 
     i, 
     max = -Infinity; 
    for (i = 0; i < arr.length; ++i) // loop 1 
     if (arr[i] === +arr[i]) // simple check if number, throw away NaN 
      if (arr[i] > max) 
       max = arr[i]; 
    while (max-- > 2) // loop 2, you said 2 is minimum 
     if (arr.indexOf(max) === -1) 
      bar.unshift(max); 
    return bar; 
} 

foo([1, 7, 3, 'baz', 4]); // [2, 5, 6] 

나는 또한 모든 숫자가 정수라고 가정합니다.

+0

+1 감사합니다 @ 폴 당신이 대답은 내가 원하는 것입니다. –

+0

'max = -Infinity;'왜'-'입니까? 왜 무한대인가 –

+0

@ RokoC.Buljan (NaN과 그 자체 제외) 어떤 숫자가'-Infinity'보다 큽니다. 또한,'Math.max(); // -Infinity'. '-Infinity'가 가장 높은 반복 횟수 인 루프는 즉시 멈 춥니 다. –

관련 문제