melkaya94
@melkaya94

Как получить индексы элементов массива, удовлетворяющих условию?

Есть массив:

const array = [{id:'retshd'}, {id: 2}, {id:5}, {id: 'hfdjfdkd'}]

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

const array = [0, 3]
  • Вопрос задан
  • 191 просмотр
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
array.map((n, i) => typeof n.id === 'string' ? i : null).filter(n => n !== null)

или

array.reduce((acc, n, i) => (`${n.id}` === n.id && acc.push(i), acc), [])
Ответ написан
Комментировать
@abberati
frontend-разработчик
В один проход:

array.reduce(
  (acc, { id }, index) => typeof id === 'string' ? [...acc, index] : acc,
  []
)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы