training-web.ruГлавнаяКатегорииО насКарта сайтаПоискТёмная тема

Категории

Фильтрация массива grep() jquery

Создано: 23 декабря 2015Автор: Егор Астапов2177 просмотровСложность: легкий

Очень часто нужно отфильтровать массив javascript. Тут целых 3 способа: функция slice(), функция grep(), цикл при котором создаётся новый массив на основе старого. Остановимся на функции grep(). Посмотрите на код что ниже.


var arr = [ 1, 9, 3, 8, 6, 1, 5, 9, 4, 7, 3, 8, 6, 9 ];
console.log(arr.join(", "));

// очистка массива по индексу и значению
arr = jQuery.grep(arr, function(n, i){
  /* верни элементы массива у которых 
  порядок в массиве (индекс) больше 4 и
  значение не равно 5*/
  return (n != 5 && i > 4);
});	
console.log(arr.join(", "));

Обратите внимание на условие n != 5 && i > 4. Тут используются значения массива и позиция элемента (индекс). Условий может быть много. Функция grep() хороша тем, что она не создаёт новый массив, а удаляет элементы внутри массива.


var arr = [ 1, 9, 3, 8, 6, 1, 5, 9, 4, 7, 3, 8, 6, 9 ];
// вторая очистка массива по значению
arr = jQuery.grep(arr, function (a) { return a != 9; });
console.log(arr.join(", "));
// вывод: 1, 3, 8, 6, 1, 5, 4, 7, 3, 8, 6

В примере выше удаляются значения равные 9. Остальные элементы остаются на своих местах. Эта функция очень хороший фильтр. О массивах читайте в статье массивы в javascript

Комментарии

реклама