我正在创建一个纸牌游戏。我试图循环两个数组。我可以使用for
循环来执行此操作,但是我想使用forEach()
。我没有得到正确的结果。下面是有效的for循环,然后是我尝试过的forEach()
方法:
const suits = ['Heart','Diamond','Spade','Club']
const values=['2','3','4','5','6','7','8','9','K','Q','J','A']
const deck = []
for(i = 0; i<values.length; i++){
for(x =0; x < suits.length; x++){
const card = {value: values[i], suits: suits[x]}
deck.push(card)
}
}
values.forEach((value,x) => {
suits.forEach((suit,i) => {
const card = {value: value[x], suits: suit[i]}
deck.push(card)
})
})
最佳答案
使用forEach
时,您不需要使用索引来访问值,只需从回调参数中获取值即可。但是,如果使用索引,则需要访问values[x], suits[i]
而不是value[x], suit[i]
。
const suits = ['Heart','Diamond','Spade','Club']
const values=['2','3','4','5','6','7','8','9','K','Q','J','A']
const deck = [];
values.forEach((value,x) => {
suits.forEach((suit,i) => {
const card = {value: value, suits: suit}
deck.push(card)
})
})
console.log(deck)