2015-01-19 3 views
1

У меня есть массив, исходящий из базы данных, захватывающий все идентификаторы из группы элементов. Однако, похоже, он также захватывает некоторые отрицательные идентификаторы от каких-либо бэкэндов, и это разрушает то, что мне нужно делать с этими идентификаторами.Удалить отрицательные числа из массива

Есть ли способ удалить эти отрицательные идентификаторы из массива, прежде чем я его закрою и поместил в приложение?

После того, как я схватил их, я уже перебираю их.

ids.forEach(function(Id) { 
      //Code adding elements matching with id's to the screen 
}); 

Я попытался добавить, если заявление там просто не запустить этот код, если идентификатор меньше 0, но это, похоже, не хотят работать.

ответ

4

Просто используйте Array.filter

ids = ids.filter(function(x){ return x > -1 }); 

Array.filter фильтрует элементы на основе булевых вернулся. Здесь мы фильтруем только числа, которые больше, чем -1

+0

Я отклонил изменение, предлагающее изменить 'x> -1' на' x> = 0', так как он полностью равен логически, но его можно считать удобочитаемым. – Jonast92

+0

Большое вам спасибо, я никогда раньше не использовал фильтр. Новый трюк добавлен в мою книгу! :) – zazvorniki

+0

@zazvorniki рад, что это помогло :) –

0

Использование grep:

ids = [-1,3,4,-2] 
ids = jQuery.grep(ids, function(n, i) { 
    return n>=0; 
}); 
console.log(ids) 

Описание: Находит элементы массива, которые удовлетворяют функции фильтра. Исходный массив не изменяется.

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