使用包含要从第一个数组过滤的名称的另一个数组过滤数组

时间:2016-12-07 17:52:39

标签: javascript

input : ['Ram', 'Shyam' , 'Hari' , 'Gopal' , 'Hawa'] 
['Shyam' , 'Hawa']

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

1 个答案:

答案 0 :(得分:0)

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

“对我来说,好像你让它变得有点过于复杂。

迭代三次(filter,for循环,for循环)。 对数组使用for循环。 使用新的数组和[...]。“

 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