@value79

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

Надо написать функцию, которая возвращает массив индексов элементов, у которые значение равно value. Так же она должна находить индексы, когда элемент стоит на первом или последнем месте и возвращать пустой массив, если элемента нет в массиве.
Пытался так:
function findIndex(arr, value) {
arr.reduce((a, b, c) => {
    if(b === value && (arr[0] === value || arr[arr.length - 1] === value)) a.push(c);
    return a;
}, [])
}

Тест дает undefined. Что нужно подправить?
  • Вопрос задан
  • 77 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
возвращает массив индексов элементов, у которые значение равно value.

const findIndex = (arr, value) => arr
  .map((v, i) => ({ v, i }))
  .filter(({ v }) => v === value)
  .map(({ i }) => i);
Каждый элемент массива переделать в объект, где v: элемент, а i: индекс в массиве.
Затем отфильтровать, оставив только те, где бывш.элемент === value
В конце вернуть вместо каждого оставшегося элемента только его индекс i
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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