@Denioo

Как искать в массиве js по id?

Есть массив в js или объект, в нем хранятся данные на подобии такого: id="...", name="....". Т.е. у каждого имени есть свой id. Я хочу найди имя по id, т.е. у меня известно id и мне нужно получается найти имя по этому id. Я делаю вот такую конструкцию:
if (vm.filter.roleId != null) {
						vm.roles.findIndex(name);// знаю тут ошибка но не знаю как ее изменить
					}

Но не работает, подскажите какую конструкцию использовать.
  • Вопрос задан
  • 1780 просмотров
Решения вопроса 3
@titelhalter
findIndex ждет функцию в качестве параметра. Если в массиве мы ищем индекс элемента, у которого поле name совпадает со значением в переменной name, то нужно
vm.roles.findIndex(item => item.name == name)
Ответ написан
Комментировать
@Frontline_tz
const newArray = vm.roles.filter((item: {name: string}) => item.name === 'SOME NAME STRING');


если я правильно понял то можно реализовать таким образом, то есть в метод .filter() передаем функцию, с типизацией, где указываем что у нас в объекте есть поле name: string, ну и потом что бы функция фильтр внесла элемент в новый массив мы должны в переданной функции вернуть булево значение, то есть true/false, если будет true то элемента удовлетворяет текущим параметрам и будет добавлен в новый массив и наоборот
Ответ написан
Комментировать
hzzzzl
@hzzzzl
const role = vm.roles.find(r => r.id === roleId)
const name = role ? role.name : undefined  // если не найдет по айдишнику, то role будет undefined
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
04 мая 2024, в 06:10
4000 руб./за проект
04 мая 2024, в 05:49
10000 руб./за проект
04 мая 2024, в 03:57
10000 руб./за проект