сделать фильтр data по следующим возможным комбинациям массива:
Имени+фамилия, фамилия+имя, имя, фамилия
Как можно загуглить?
бамп
так. не понял. массив ['Имя', 'фамилия']? ['Имя, фамилия', 'Имя, фамилия', ... ] ?
let name = [user.user.firstname, user.user.lastname] search.name = 'Alex Sokov' Нужно проверить имеется ли в name хоть 1 слово которое имеется в search.name
всё равно не пойму задачу, Вы то одно пишете то другое. опишите что на входе и что на выходе должно получиться.
Искать в объекте кусти строки которые записаны в другом обьекте
да это легко. только я не понимаю в каком виде входные данные) в каждом новом сообщении показания свидетеля расходятся
let name = [Alex, Sokov] search.name = 'Sokov, Alex' //Проверка условий выход: [Alex, Sokov] let name = [Alex, Sokov] search.name = 'Alex' //Проверка условий выход: [Alex, Sokov] let name = [Alex, Sokov] search.name = 'Sokov' //Проверка условий выход: [Alex, Sokov] let name = [Alex, Sokov] search.name = 'Misha Sokov' //Проверка условий выход: []
Ошибся в формулировке. все что в search.name должно быть в name
var searchData = [ { firstname: 'Иван', lastname: 'Иванов' }, { firstname: 'Петр', lastname: 'Петров' }, { firstname: 'Сидр', lastname: 'Сидоров' }, ]; function myfilter(data, text) { searchArr = text.split(' '); return data.filter( obj => searchArr.includes(obj.firstname) || searchArr.includes(obj.lastname) ); } console.log( ['Иван', 'Иван Иванов', 'Иван Петров', 'Петров', 'Сидр Сидоров', 'Карл Сидоров', 'Ололо'].map( needle => `'${needle}' -> ` + JSON.stringify(myfilter(searchData, needle)) ).join('\n') )-> 'Иван' -> [{"firstname":"Иван","lastname":"Иванов"}] 'Иван Иванов' -> [{"firstname":"Иван","lastname":"Иванов"}] 'Иван Петров' -> [{"firstname":"Иван","lastname":"Иванов"},{"firstname":"Петр","lastname":"Петров"}] 'Петров' -> [{"firstname":"Петр","lastname":"Петров"}] 'Сидр Сидоров' -> [{"firstname":"Сидр","lastname":"Сидоров"}] 'Карл Сидоров' -> [{"firstname":"Сидр","lastname":"Сидоров"}] 'Ололо' -> []
Злостное дублирование кода)
А что там надо искать?
Напиши критерии поиска, я попробую накидать регулярку. Люблю регулярки :3
Можете ещё arr.include() юзать
let name = [Alex, Sokov] search.name = 'Sokov Ale' //Проверка условий выход: [Alex, Sokov] let name = [Alex, Sokov] search.name = 'Ale' //Проверка условий выход: [Alex, Sokov] let name = [Alex, Sokov] search.name = 'Soko' //Проверка условий выход: [Alex, Sokov] let name = [Alex, Sokov] search.name = 'Misha Sokov' //Проверка условий выход: []
А структура данных, где хранятся имена, как будет выглядеть?
Или это просто условная задача и есть всего 2 итема в массиве?
Допустим 2 const data = [{firstname: 'smth', lastname: 'ri'}, {firstname: 'lev', lastname: 'tolstoi'}]
Такой варик лучше робит -
Обсуждают сегодня