Как лучше совершить поиск по массиву с объектами?
Нужно найти в каком элементе массива находится значение например "цветы", при этом нужно что бы когда я искал допустим по запросу "цвет" он выдавал все возможные варианты, как это лучше сделать?
[
{
name: 'Важные',
location: [
'Продукты',
'Цветы',
]
},
{
name: 'Важные2',
location: [
'Продукты2',
'Цветы2',
]
}]
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
let arr = [
{
name: 'Важные',
location: [
'Продукты',
'Цветы',
]
},
{
name: 'Важные2',
location: [
'Продукты2',
'Цветы2',
]
}];
let search = 'Цветы';
let result = arr.filter(el => el.location.find(location => location.indexOf(search) !== -1));
console.log(result);
console.log('---------------------------');
search = 'Цветы2';
result = arr.filter(el => el.location.find(location => location.indexOf(search) !== -1));
console.log(result);
console.log('---------------------------');
console.log('---------------------------');
let filterArrByLocation = (arr, searchString) => {
return arr.filter(el => el.location.find(location => location.indexOf(searchString) !== -1));
}
console.log(filterArrByLocation(arr, 'Цветы2'));