嘿伙计们,任何人都可以向我解释这段代码吗?
hey guys, can anyone explain this piece of code to me?
我目前正在学习 JavaScript 并且必须完成一项编码挑战,挑战是:
“创建一个名为 'scorers' 的对象,其中包含作为属性得分的球员的姓名和作为值的进球数。在这个游戏中它将如下所示:
{
纳尔比:1,
胡梅尔斯:1,
莱万多夫斯基:2
}”
解决方案 :
“遍历数组,并将数组元素添加为对象属性,
然后在我们遇到某个元素的新出现时增加计数
对象:
const game = {
scored: ['Lewandowski', 'Gnarby', 'Lewandowski', 'Hummels']
};
解决方案是:
const scorers = {};
for (const player of game.scored) {
scorers[player] ? scorers[player]++ : (scorers[player] = 1);
}
结果是:
[Lewandowski: 2, Gnarby: 1, Hummels: 1]
我不明白 得分手[球员] 到底发生了什么?得分手[球员]++ : (得分手[球员] = 1);
得分手[球员]++ 做什么?
它是一个三元运算符,用于检查 game
是否包含 player
的值作为 属性。如果是这样,它会增加 属性 的值。否则,它将其设置为 1
.
也可以这样改写:
if(scorers[player]){
scorers[player]++;
} else {
scorers[player] = 1;
}
如果 scorers
没有 player
的值作为 属性,scorers[player]
将 return 未定义,当强制为布尔值时, 是 false
.
我目前正在学习 JavaScript 并且必须完成一项编码挑战,挑战是: “创建一个名为 'scorers' 的对象,其中包含作为属性得分的球员的姓名和作为值的进球数。在这个游戏中它将如下所示: { 纳尔比:1, 胡梅尔斯:1, 莱万多夫斯基:2 }” 解决方案 : “遍历数组,并将数组元素添加为对象属性, 然后在我们遇到某个元素的新出现时增加计数
对象:
const game = {
scored: ['Lewandowski', 'Gnarby', 'Lewandowski', 'Hummels']
};
解决方案是:
const scorers = {};
for (const player of game.scored) {
scorers[player] ? scorers[player]++ : (scorers[player] = 1);
}
结果是:
[Lewandowski: 2, Gnarby: 1, Hummels: 1]
我不明白 得分手[球员] 到底发生了什么?得分手[球员]++ : (得分手[球员] = 1); 得分手[球员]++ 做什么?
它是一个三元运算符,用于检查 game
是否包含 player
的值作为 属性。如果是这样,它会增加 属性 的值。否则,它将其设置为 1
.
也可以这样改写:
if(scorers[player]){
scorers[player]++;
} else {
scorers[player] = 1;
}
如果 scorers
没有 player
的值作为 属性,scorers[player]
将 return 未定义,当强制为布尔值时, 是 false
.