Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вывод значений по имени с массива объектов (https://javascript.ru/forum/misc/83994-vyvod-znachenijj-po-imeni-s-massiva-obektov.html)

NovichokJS 09.05.2022 15:36

Вывод значений по имени с массива объектов
 
Не пойму почему сейчас выводит значение по всем именам. Мне нужно получить по одному имени.

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' } ]

рони 09.05.2022 15:43

Цитата:

Сообщение от NovichokJS
Не пойму почему сейчас выводит значение по всем именам.

а где условие, которое будет отсеивать ненужное?

рони 09.05.2022 15:46

NovichokJS,
и строки с object, так себе ... только мешать будут.

рони 09.05.2022 15:52

NovichokJS,
function findUsersByName(users, name) {
            let arr = [];
            for (const obj of users) {
                let str = obj.name;
                if (name === str) arr.push(obj);
            }
            return arr;
        }

NovichokJS 09.05.2022 15:53

подредактировал. теперь ближе уже. Но насчет условия не понимаю что надо сделать

NovichokJS 09.05.2022 15:55

ага, вот как, спасибо

NovichokJS 09.05.2022 16:16

У меня еще функция там function findUsersByString(users, str) { }
Нужно чтобы искало значения по совпадению символов. Например:

(findUsersByString(users, 'Al')); // ===> [ { id: 102, name: 'Alexandr', city: 'Lviv' }, { id: 108, name: 'Alexey', city: 'Dnipro' } ]


Как это сделать? через регулярные выражения?

рони 09.05.2022 16:58

NovichokJS,
Поиск подстроки

NovichokJS 09.05.2022 17:12

ок, я посмотрел, но не пойму пока как это связать чтобы сработало. Пока что получилось, так только так :

function findUsersByString(users, str) {
            let arr = [];
            for (const obj of users) {
            
                if (str.indexOf != -1) {arr.push(obj)}
            }
            return arr;
        }

рони 09.05.2022 17:20

NovichokJS,
осталось написать строку 4 (см. пример выше) и строка 5 исправить indexOf


Часовой пояс GMT +3, время: 03:00.