0

我不明白为什么我的返回是索引 2 而不是 for of 循环中的索引 0。

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

3 回答 3

1

for ... of循环遍历数组的值而不是索引。因此,您的循环返回数组中索引 2 处的值,即字符串“4”。如果将其更改为for ... in循环,则会得到字符串“2”。当然,循环根本没有意义,因为循环唯一要做的就是return,所以它会在第一次迭代时退出。

p应该用letor声明var

于 2020-01-19T21:21:58.550 回答
0

您的示例中的 p 将为“2”,因此您将返回数组的索引 2,该索引将返回“4”。

于 2020-01-19T21:23:24.153 回答
0

改变这个:

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

对此:

for (p in cards) {
   return cards[p];
}
于 2020-01-19T21:24:42.267 回答