Поиск в конкатрированных массивах с использованием функции фильтра - PullRequest
0 голосов
/ 12 мая 2019

Я создал несколько массивов и хочу найти в них некоторые строковые данные. Итак, я понял, что могу объединить все массивы в один и должен искать в нем данные, которые мне нужны для поиска. Но проблема в том, что когда я пытаюсь найти окончательный массив, он выдает ошибку. размещение кода ниже.

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 голосов
/ 12 мая 2019

Вы передаете саму функцию allArrays в searchData. Вы должны вызвать его.

searchData(allArrays, filters);

Должно быть

searchData(allArrays(), filters);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...