Индекс объекта в массиве, который имеет массив из одного объекта - PullRequest
1 голос
/ 09 апреля 2020

Я работаю с Google Maps API в Angular (TypeScript). Я хочу сделать кликабельную карту стран, где вы нажимаете на какую-то страну, она меняет цвет. Кажется, просто, но я использую библиотеку ng2- google-maps для Angular, что немного сложнее.

Моя проблема: мне нужно получить индекс основного объекта в массиве. Но мне нужно искать по значению, которое находится в этом объекте, как другой объект в другом массиве.

console.log of those array

Я уже получаю код страны выбранного региона на карте , например, "PL", как в этом console.log.

Мне нужно получить индекс основного массива (PL имеет индекс '0'), чтобы проверить, существует ли страна PL в этом массиве.

Я пытался так:

mainArray.findIndex((result) => result.c.findIndex((result) => result.v === 'PL'));

Но это не работает. Тогда мне, вероятно, потребуется использовать метод slice () для удаления найденного индекса из основного массива.

Заранее спасибо.

1 Ответ

1 голос
/ 09 апреля 2020

Вы используете Array#findIndex в функции, которая возвращает индекс, или -1, поэтому будет ложно, если элемент находится в позиции 0, а во всех других случаях это будет верно (не нулевые числа являются правдивыми), поэтому он не будет работать так, как вы ожидали.

Вы можете использовать метод Array#some, который возвращает true, если условие выполнено хотя бы для одного элемента.

 mainArray.findIndex((result) => result.c.some((result) => result.v === 'PL'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...