Я не могу понять, почему мой доход равен индексу 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]; } }
for ... of l oop перебирает значения массива массива, а не индексы. Поэтому ваш l oop возвращает значение по индексу 2 в массиве, строку «4». Если вы измените его на for ... in l oop, вы получите строку "2". Конечно, нет никакого смысла в l oop, потому что единственное, что делает l oop, это return, поэтому он выйдет на первой итерации.
for ... of
for ... in
return
Также p должно быть объявляется с let или var.
p
let
var
Изменить это:
for (p of cards) { return cards[p]; }
На это:
for (p in cards) { return cards[p]; }
p в вашем примере будет "2", поэтому вы вернете индекс 2 вашего массива, который вернет "4".