Я использую array.protoype.filter method и возвращает пустой массив.Javascript filter возвращающий пустой массив
function isSelected(value){
var tagString = $(value).attr('class');
$.each($(brandDrop.selections), function(index, brand) {
if(tagString.indexOf(brand) >= 0) {
console.log(tagString);
return tagString;
}
});
}
var products = [];
$.each($('.products li'), function(index, product){
products.push(product);
});
var brandFiltered = products.filter(isSelected);
console.log(brandFiltered);
Вот выход консоль для tagstring внутри цикла и brandFiltered вне цикла:
AugustaCollection,Crib,publishSK,simmons,simmons-kids,wood
cribs:2058 BellanteCollection,Crib,publishSK,simmons-kids,wood
cribs:2058 BelmontCollection,Crib,publishSK,simmons-kids,wood
cribs:2082 []
Эта функция вызывается путем выбора флажка. Что этот фильтр должен сделать, так это взять массив элементов html, проверить их атрибут класса на наличие выбранного значения и вернуть только имена классов для элементов, которые соответствуют критериям фильтра. Журнал консоли в цикле показывает правильные элементы, но по какой-то причине пустой цикл возвращается за пределы цикла. Я неправильно использую метод фильтра?
Ваш 'метод isSelected' ничего не возвращает (' undefined') –