Я пытаюсь вернуть искомый элемент через forEach, но, к сожалению, он не возвращает правильное значение, а через цикл for, может вернуть правильное значение после поиска.

function search(arr, searchValue) {
  arr.forEach((_eachItem,i)=> {
    if(_eachItem===searchValue) {
      return i
    }
  })
  
  return -1
  
//   for(let i=0;i<arr.length;i++) {
//     if(arr[i]===searchValue) {
//       return i
//     }
//   }
//   return -1
}


console.log(search([11,1,2,3,4,9],9))
0
chidananda 24 Ноя 2020 в 05:32

2 ответа

Лучший ответ

Возврат из обратного вызова forEach не возвращается из внешней функции. Вы можете использовать Array#indexOf.

function search(arr, searchValue) {
  return arr.indexOf(searchValue);
}

console.log(search([11,1,2,3,4,9],9))
0
iota 24 Ноя 2020 в 02:55
64979428