【问题标题】:Filter the array with another array containing the names to be filtered from the first array使用另一个数组过滤数组,该数组包含要从第一个数组中过滤的名称
【发布时间】:2017-04-22 18:57:51
【问题描述】:
input : ['Ram', 'Shyam' , 'Hari' , 'Gopal' , 'Hawa'] 
['Shyam' , 'Hawa']

output: ['Ram' , 'Hari' , 'Gopal']

【问题讨论】:

标签: javascript


【解决方案1】:

你可以试试这个,我在数组中更新你的值:

“在我看来,你把它弄得太复杂了。

迭代 3 次(过滤器、for 循环、for in 循环)。 对数组使用 for in 循环。 使用 new Array 和 [...]。"

 var myArray = [['Ram', 'Shyam' , 'Hari' , 'Gopal' , 'Hawa'], 
    ['Shyam' , 'Hawa']];

    var userPassedFilter = ["Hawa"];

    newArray = consolidatedFilters(myArray, userPassedFilter);
    console.log(newArray);

    function consolidatedFilters(passedArray, passedFilter) {
        var filteredArray = passedArray.filter(
        function(el) { // executed for each person
            for (var i = 0; i < passedFilter.length; i++) { // iterate over filter
                if (el[1].indexOf(passedFilter[i]) != -1) {
                    return true; // if this person knows this language
                }
            }
            return false;
        }
        );     
    return filteredArray;
}

参考:here

【讨论】:

  • 实际上我想从我的输入中删除“Shyam”和“Hari”。上面的代码对我有帮助,但我没有得到想要的输出。
  • 你可以把你想要的(输出)放在行里:var userPassedFilter = ["xxxx", "xxxx", "xxxxx"];
  • 并在第 2 行 ['xxxx' , 'xxxx', 'xxxx' ]];
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-08
相关资源
最近更新 更多