Почему я получаю возврат индекса два? - PullRequest
0 голосов
/ 20 января 2020

Я не могу понять, почему мой доход равен индексу 2, а не индексу 0 в for l oop.

function cardPicker() {
  let cards = [
    "2",
    "3",
    "4",
    "5",
    "6",
    "7",
    "8",
    "9",
    "10",
    "J",
    "Q",
    "K",
    "A"
  ];
  for (p of cards) {
    return cards[p];
  }
}

Ответы [ 3 ]

1 голос
/ 20 января 2020

for ... of l oop перебирает значения массива массива, а не индексы. Поэтому ваш l oop возвращает значение по индексу 2 в массиве, строку «4». Если вы измените его на for ... in l oop, вы получите строку "2". Конечно, нет никакого смысла в l oop, потому что единственное, что делает l oop, это return, поэтому он выйдет на первой итерации.

Также p должно быть объявляется с let или var.

0 голосов
/ 20 января 2020

Изменить это:

for (p of cards) {
   return cards[p];
}

На это:

for (p in cards) {
   return cards[p];
}
0 голосов
/ 20 января 2020

p в вашем примере будет "2", поэтому вы вернете индекс 2 вашего массива, который вернет "4".

...