使用过滤器功能搜索缩排数组

时间:2019-05-12 09:03:57

标签: javascript arrays search filter

我已经创建了一些数组,并想在其中搜索一些字符串数据。所以我发现我可以将所有数组连接在一起,并应该在其中搜索我需要搜索的数据。但是问题是当我尝试搜索最终数组时,它给了我错误。在下面发布代码。

const filters = {
    listName: '',
    name: '',
    number: '',
    designation: ''
};

let mpc = getSavedArray('mpcData');
let mpe = getSavedArray('mpeData');
let div = getSavedArray('divData');
let dist = getSavedArray('distData');
let teh = getSavedArray('tehData');

const allArrays = function () {
    return (mpe.concat(mpc, dist, div, teh));
};
console.log(allArrays());

const searchData = function (arrays, filters) {
    const filteredArray = arrays.filter(function (query) {
        return query.name.toLowerCase().includes(filters.name.toLowerCase())
    })
    document.querySelector('#search-results').innerHTML = ''
    filteredArray.forEach(function (query) {
        const allResult = generateDomElement(query)
        document.querySelector('#search-results').appendChild(allResult)
    })
};

searchData(allArrays, filters);

document.querySelector('#search-record').addEventListener('input', function(e){
    filters.name = e.target.value
    searchData(allArrays, filters);
})

1 个答案:

答案 0 :(得分:0)

您正在将函数allArrays本身传递给searchData。您应该调用它。

searchData(allArrays, filters);

应该是

searchData(allArrays(), filters);