В чем разница между $.map и $.grep в jQuery
В чем разница между $.map
и $.grep
в jQuery?
Мне нужен простой ответ, насколько это возможно.
Ответы
Ответ 1
Предполагаю, что вы имеете в виду $.grep
и $.map
. Разница заключается в том, что мы используем $.grep
для фильтрации массива, а мы используем $.map
для применения функции к каждому элементу массива.
Вот гораздо лучшее объяснение, чем я могу сделать:
http://onwebdev.blogspot.com/2011/03/jquery-grep-and-map-example-and-syntax.html
Ответ 2
$.map
метод может использоваться как итератор, но предназначен для манипулирования массивом и возврата нового массива.
var items = ['A','B','C','A'];
var items = $.map(items, function(item) {
if (item == 'A')
return null;
return item;
});
теперь новый массив. ['B','C']
или
var items = $.map(items, function(item) {
if (item == 'A')
return 'A'+'B';
return item;
});
вывод будет ['AB', 'B', 'C', 'AB']
$.grep
используется для фильтрации
var items = $.grep(items, function(item) {
return item != 'A';
});
теперь элементы ['B','C']
однако
var items = $.grep(items, function(item) {
if (item == 'A')
return 'A'+'B';
return item;
})
вернет ['A', 'B', 'C', 'A']
поскольку он не создает новые вещи - он уменьшает существующие.