2014-10-04 2 views
0

Для целей обучения я хотел бы знать, как проверить пустые номера (или заменить буквы) из случайных чисел.Проверить пустые номера в массиве

Я ставлю цифры и буквы в массив:

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

В этом случае мы не знаем, наибольшее число или наименьшее число.

Я хочу проверить пустые номера, начиная с номера 2 до самого высокого (результат 2, 5 и 6).

+3

Я не понимаю, что вы подразумеваете под «пустыми» цифрами. – Paul

+0

Почему вы не заменяете «ваш пустой номер» (ИЛИ МОЖЕТ БЫТЬ НЕОПРЕДЕЛЕННОЙ ЗНАЧЕНИЕМ) из массива? то вы можете получить самое высокое значение –

+0

В этом случае я хочу получить числа 2, 5 и 6 из вышеуказанного массива. –

ответ

3

Loop над массива найти максимальное 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 Спасибо @Paul за вас ответ, это то, что я хочу. –

+0

'max = -Infinity;' why' -'? Почему Infinity вообще –

+0

@ RokoC.Buljan любое число (кроме 'NaN' и самого себя) больше, чем' -Infinity'. Кроме того, 'Math.max(); // -Infinity'. Любой цикл, где '-Infinity' - это самый высокий счетчик итераций, немедленно прекращается. –

Смежные вопросы