Вывод значений по имени с массива объектов
Не пойму почему сейчас выводит значение по всем именам. Мне нужно получить по одному имени.
function findUsersByName(users, name) { let arr = []; for (const i of users) { arr.push(i, name); } return arr; } function findUsersByString(users, str) { } // examples const users = [ { id: 101, name: 'Denis', city: 'Kyiv', }, { id: 102, name: 'Alexandr', city: 'Lviv', }, { id: 103, name: 'Nastya', city: 'Kyiv', }, { id: 104, name: 'Violetta', city: 'Odesa', }, { id: 105, name: 'Mykola', city: 'Lviv', }, { id: 106, name: 'Denis', city: 'Lviv', }, { id: 107, name: 'Andrey', city: 'Odesa', }, { id: 108, name: 'Alexey', city: 'Dnipro', }, ]; console.log(findUsersByName(users, 'Denis')); // ===> [ { id: 101, name: 'Denis', city: 'Kyiv' }, { id: 106, name: 'Denis', city: 'Lviv' } ] |
Цитата:
|
NovichokJS,
и строки с object, так себе ... только мешать будут. |
NovichokJS,
function findUsersByName(users, name) { let arr = []; for (const obj of users) { let str = obj.name; if (name === str) arr.push(obj); } return arr; } |
подредактировал. теперь ближе уже. Но насчет условия не понимаю что надо сделать
|
ага, вот как, спасибо
|
У меня еще функция там function findUsersByString(users, str) { }
Нужно чтобы искало значения по совпадению символов. Например: (findUsersByString(users, 'Al')); // ===> [ { id: 102, name: 'Alexandr', city: 'Lviv' }, { id: 108, name: 'Alexey', city: 'Dnipro' } ] Как это сделать? через регулярные выражения? |
NovichokJS,
Поиск подстроки |
ок, я посмотрел, но не пойму пока как это связать чтобы сработало. Пока что получилось, так только так :
function findUsersByString(users, str) { let arr = []; for (const obj of users) { if (str.indexOf != -1) {arr.push(obj)} } return arr; } |
NovichokJS,
осталось написать строку 4 (см. пример выше) и строка 5 исправить indexOf |
видимо в строках 4 и 5 (как вы указали) должно быть что то вроде такого :
let strRes = ???; if (str.includes(strRes)) {arr.push(obj)} но не догадываюсь что(( |
проблема еще в том, что если вот так вызывать функцию findUsersByString(users, 't')); тоже должно выдавать список найденных результатов
|
NovichokJS,
function findUsersByName(users, str) { let arr = []; for (const obj of users) { let name = obj.name; if (name.indexOf(str) !== -1) arr.push(obj); //if (name.toLowerCase().indexOf(str.toLowerCase()) !== -1) arr.push(obj); } return arr; } |
упростил if (obj.name.includes(str)) {arr.push(obj);}
|
Часовой пояс GMT +3, время: 09:08. |