Попытка воссоздать метод indexOf в JavaScript - PullRequest
0 голосов
/ 09 ноября 2018

Я пытаюсь воссоздать метод массива indexOf в JavaScript.Что касается меня, я не могу понять, почему не работает следующее:

function indexOf(array, value) {
  for (let i = 0; i < array.length; i++) {
    if (array[i] === value) {
      return i;
    }
    return -1;
  }
}

Например:

indexOf([1,2,1,3], 2) // should return 1

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

1 Ответ

0 голосов
/ 09 ноября 2018

Вам просто нужно переместить return -1 за пределы вашего for цикла.

function indexOf(array, value) {
    for (let i = 0; i < array.length; i++) {
        if (array[i] === value) {
            return i;
        }
    }

    return -1;
}

console.log(indexOf([1, 2, 1, 3], 2));
console.log(indexOf([1, 2, 1, 3], 4));
...