2014-10-04 34 views
0

爲了學習目的,我想知道如何從隨機數字中檢查空數字(或用字母替換)。檢查數組中的空數字

我把數字和字母到一個數組:

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

在這種情況下,我們不知道的最高數和最低數。

我想檢查從數字2開始到最高的空數(結果2,5和6)。

+3

我不明白你的意思是「空」的數字。 – Paul 2014-10-04 01:32:53

+0

爲什麼不從數組中替換'你的空數'(或可能是無約束值)?那麼你可以得到最高值 – 2014-10-04 01:35:03

+0

在這種情況下,我想從上面的數組中獲得數字2,5和6。 – 2014-10-04 01:35:12

回答

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謝謝@保羅爲你回答這就是我想要的。 – 2014-10-04 01:51:27

+0

'max = -Infinity;'爲什麼'-'?爲什麼無窮大 – 2014-10-04 01:53:51

+0

@ RokoC.Buljan任何數字(除了'NaN'和它本身)都大於'-Infinity'。另外,'Math.max(); // -Infinity'。其中'-Infinity'是最高迭代次數的任何循環都將立即停止。 – 2014-10-04 01:56:49