Ich benutze die array.protoype.filter method und es gibt ein leeres Array zurück.Javascript Filter leeres Array zurückgeben
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);
Hier ist die Ausgabe der Konsole innerhalb der Schleife für tagstring und brandFiltered außerhalb der Schleife:
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 []
Diese Funktion wird durch die Auswahl einer Checkbox ausgelöst wird. Was dieser Filter tun soll, ist ein Array von HTML-Elementen zu nehmen, ihr Klassenattribut auf das Vorhandensein eines ausgewählten Wertes zu überprüfen und nur die Klassennamen für die Elemente zurückzugeben, die die Filterkriterien erfüllen. Das Konsolenprotokoll in der Schleife zeigt die richtigen Elemente, aber aus irgendeinem Grund wird ein leeres Array außerhalb der Schleife zurückgegeben. Benutze ich die Filtermethode falsch?
Ihre 'isSelected' Methode gibt nichts (' undefined') –