Javascript 迭代对象中的所有属性,查找并替换

Javascript 迭代对象中的所有属性,查找并替换,javascript,Javascript,我的代码生成了这个Javascript对象,播放器对象是 const player = { cards: [] } 我的问题是如何在玩家对象中循环我的所有卡,并将所有“A”面值替换为1?使用findIndex或splice player: Object cards: Array(2) 0: Array(1) 0: card {suit: "spades", face: "7", faceValue: 7} length: 1 __proto__: Array(0) 1: Array(1)

我的代码生成了这个Javascript对象,播放器对象是

const player = {
   cards: []
}
我的问题是如何在玩家对象中循环我的所有卡,并将所有“A”面值替换为1?使用findIndex或splice

player: Object
cards: Array(2)
0: Array(1)
0: card {suit: "spades", face: "7", faceValue: 7}
length: 1
__proto__: Array(0)
1: Array(1)
0: card {suit: "clubs", face: "A", faceValue: 11}
length: 1
1: Array(2)
0: card {suit: "spades", face: "A, faceValue: 11}
length: 1
您可以使用卡对象更新其值

player.cards = player.cards.map(card => {
    if (card.face === 'A') card.faceValue = 1;
    return card;
});
更新: 如果我们不生成新值,最好使用
forEach

player.cards.forEach(card => {
    if (card.face === 'A') card.faceValue = 1;
});

写一个循环,检查face是否==a,如果是,则将faceValue设置为1不清楚数据的结构是什么(从日志输出),因此很难建议迭代该结构的方法。如果更改对象(即不生成新值),则无需使用
.map
。只需使用
.forEach
即可。有没有.forEach的示例可以查找和替换?是的@FelixKling是正确的,但变异数组通常是一种不好的做法。我会创建一个新的数组,比如
constmycards=player.cards.map(…)
,如果需要的话,随后将该数组分配给玩家。我认为这是一个更好的模式,即使它可能会更慢