학습 목적으로, 난 빈 번호를 확인하는 방법을 알고 싶습니다 (또는 문자로 대체) 난수에서.배열의 빈 번호를 확인하십시오
내가 배열에 숫자와 문자를 넣어 :
var numb = [1, 7, 3, a, 4];
을 우리는 가장 높은 숫자 또는 낮은 숫자를 모르는이 경우.
숫자 2부터 시작하여 빈 번호 (결과 2, 5 및 6)를 확인하고 싶습니다. 당신의 배열 이상
학습 목적으로, 난 빈 번호를 확인하는 방법을 알고 싶습니다 (또는 문자로 대체) 난수에서.배열의 빈 번호를 확인하십시오
내가 배열에 숫자와 문자를 넣어 :
var numb = [1, 7, 3, a, 4];
을 우리는 가장 높은 숫자 또는 낮은 숫자를 모르는이 경우.
숫자 2부터 시작하여 빈 번호 (결과 2, 5 및 6)를 확인하고 싶습니다. 당신의 배열 이상
루프는 최대 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]
나는 또한 모든 숫자가 정수라고 가정합니다.
+1 감사합니다 @ 폴 당신이 대답은 내가 원하는 것입니다. –
'max = -Infinity;'왜'-'입니까? 왜 무한대인가 –
@ RokoC.Buljan (NaN과 그 자체 제외) 어떤 숫자가'-Infinity'보다 큽니다. 또한,'Math.max(); // -Infinity'. '-Infinity'가 가장 높은 반복 횟수 인 루프는 즉시 멈 춥니 다. –
"빈"숫자의 의미를 이해하지 못합니다. – Paul
어레이에서 '빈 번호'(또는 정의되지 않은 값 일 수 있음)를 바꾸지 않는 이유는 무엇입니까? 그러면 가장 높은 값을 얻을 수 있습니다. –
위의 배열에서 2, 5, 6 번 번호를 얻고 싶습니다. –