javascript - .filter() 数组使用另一个数组的元素

标签 javascript arrays filter

我有一系列人名以及他们的语言知识。我想要做的是将过滤器传递到语言列并过滤掉所有不匹配的结果。

这是示例数组

   var myArray = [["Steppen", "Spanish Polish"],
                  ["Wolf", "Spanish Polish Tagalog"],
                  ["Amanda", "Spanish"],
                  ["Ada", "Polish"],
                  ["Rhonda", "Spanish Tagalog"]];

就传递过滤器而言,它可以是一种语言,也可以是多种语言。即使过滤器中的一种语言匹配 - 也应该返回结果。因此,例如,“他加禄语”过滤器应该返回 - Wolf 和 Rhonda。 “Spanish Polish”过滤器应返回每个人 - 有西类牙语或波兰语的匹配项。

我编写了过滤器函数,但由于某种原因它卡住了,当我通过过滤器“他加禄语”时,它只迭代到数组中的第二个单元格(西类牙语波兰语他加禄语)并重复多次而不是继续。

我做错了什么,我应该以不同的方式迭代吗?

 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;
 }

最佳答案

这是 ES6 方式的终极解决方案: 无需在另一个线程中再次搜索相同的查询。

var array1 = ['a', 'b', 'c', 'd', 'e'];
var array2 = ['b', 'd', 'f'];

array1 = array1.filter(function(item) {
  return !array2.includes(item); 
})
console.log(array1); // [ 'a', 'c', 'e' ]
console.log(array2); // [ 'b', 'd', 'f' ]

关于javascript - .filter() 数组使用另一个数组的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7353917/

相关文章:

python - 在 Numpy 中为值对生成矩阵

asp.net-mvc - 使用下拉列表过滤 MVC 中的结果

search - jqGrid - 更改过滤器/搜索弹出表单 - 在页面上平坦 - 而不是对话框

javascript - 使用 JavaScript 从 HTML 中抓取单个表格

javascript - 这些 Jquery、ExtJs 框架如何覆盖原生 Javascript

c# - 如何使用 UNION 对字符/字符串数组进行分组?

java - 如何使用模式/过滤器从目录中获取文件

javascript - 类 Python 的 JavaScript 继承

javascript - Facebook 的 BigPipe 和 SEO : Cloaking?

javascript - 推送未按预期运行?