我正在创建一个纸牌游戏。我试图循环两个数组。我可以使用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)

10-01 07:42