Проверил ваш код, вроде все работает корректно. Нет поиска по `items` внутри каждого объекта, но этого и в функции по поиску нет. Так что, думаю проблем нет никаких.
Единственное внес правки в этот кусок кода, т.к. в примере у вас объект с элементом items, а тут вы обращаетесь не к нему, а к объекту и пытаетесь отфильтровать.
// Фильтрация элементов, удовлетворяющих хотя бы одному из слов
-- const filtered = data.filter(function(item) {
++ const filtered = data.items.filter(function(item) {
const text = (item.code || '') + ' ' + (item.name || '');
return words.every(function(word) {
return text.toLowerCase().indexOf(word) >= 0;
});
});