2014-10-04 40 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