Это будет делать одна строчка,
var ary = ['three', 'seven', 'eleven'];
// Remove item 'seven' from array
var filteredAry = ary.filter(function(e) { return e !== 'seven' })
//=> ["three", "eleven"]
// In ECMA6 (arrow function syntax):
var filteredAry = ary.filter(e => e !== 'seven')
. В JS используется функция фильтра . Поддерживается в IE9 и выше.
Что он делает (из ссылки на документацию)
filter () вызывает предоставленную функцию обратного вызова один раз для каждого элемента в массиве и создает новый массив из всех значений, для которых возвращается обратный вызов значение, которое приводит к истине. обратный вызов вызывается только для индексов массива, которым присвоены значения; он не вызывается для индексов, которые были удалены или которым никогда не присваивались значения. Элементы массива, которые не проходят тест обратного вызова, просто пропускаются и не включаются в новый массив.
Таким образом, в основном, это то же самое, что и все другие решения for (var key in ary) { ... }
, за исключением того, что конструкция for in
поддерживается в IE6.
По сути, фильтр - это удобный метод, который выглядит намного лучше (и является цепным) в отличие от конструкции for in
(AFAIK).
При рассмотрении ppa страницы на launchpad.net Вы будете видеть, что шумовой пакет только создается для Надежного человека (14.04), не 13.10: