array.protoype.filter methodを使用していて、空の配列を返しています。ここ空の配列を返すJavascriptフィルタ
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);
はループの外側ループ内とbrandFilteredためtagstringのコンソール出力である:
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') –