我不明白为什么我的返回是索引 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];
}
}
我不明白为什么我的返回是索引 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];
}
}
for ... of
循环遍历数组的值,而不是索引。因此,您的循环返回数组中索引 2 处的值,即字符串“4”。如果将其更改为for ... in
循环,则会得到字符串“2”。当然,循环根本没有意义,因为循环唯一要做的就是return
,所以它会在第一次迭代时退出。
也p
应该用let
or声明var
。
您的示例中的 p 将为“2”,因此您将返回数组的索引 2,该索引将返回“4”。
改变这个:
for (p of cards) {
return cards[p];
}
对此:
for (p in cards) {
return cards[p];
}