我有一組人的姓名以及他們的語言知識。我想要做的是將過濾器傳遞到語言欄並過濾掉任何不匹配的結果。.filter()使用另一個數組元素的數組
這是樣本陣列
var myArray = [["Steppen", "Spanish Polish"],
["Wolf", "Spanish Polish Tagalog"],
["Amanda", "Spanish"],
["Ada", "Polish"],
["Rhonda", "Spanish Tagalog"]];
至於傳遞過濾器,它可以是一種語言的或者許多。即使過濾器的一種語言匹配 - 也應返回結果。例如,「他加祿語」的過濾器應該返回 - 沃爾夫和朗達。 「西班牙波蘭」的過濾器應該會返回所有人 - 這裏有西班牙語或波蘭語的比賽。
我寫過濾器的功能,但由於某種原因它卡住了,當我通過過濾器「他加祿」,它只迭代到數組中的第二個單元格(西班牙波蘭語他加祿語),並重復自己多次而不是前進。
我在做什麼錯,我應該以不同的方式迭代嗎?
var userPassedFilter = new Array();
userPassedFilter[0] = "Tagalog";
newArray = consolidatedFilters(myArray, userPassedFilter);
console.log(newArray);
function consolidatedFilters(passedArray, passedFilter)
{
var filteredArray = passedArray.filter(
function(el)
{
for (var i = 0; i < passedArray.length; i++)
{
console.log("i is " + i);
for (var j in passedFilter)
{
console.log("Passed Filter j " + passedFilter[j]);
console.log("Passed Array i " + passedArray[i][1]);
console.log("String Search " + passedArray[i][1].search(passedFilter[j]));
if (passedArray[i][1].search(passedFilter[j]) != -1)
{
return true;
}
}
}
return false;
}
);
return filteredArray;
}
你應該看看使用jQuery.each()http://api.jquery.com/jQuery.each/ –
你使用jQuery的'.filter'或本地數組的'.filter'?它看起來像'passedArray'是你描述的數組,它不是一個jQuery對象。 – pimvdb
我正在使用jQuery的.filter(函數)返回基於傳遞過濾器的數組。 passedArray只是我上面描述的示例數組。 – firedrawndagger