"12, "Roger"=> "15", etc},并且 isGood(key) 是调用函数 isGood ,如果玩家好或坏-6ren">
gpt4 book ai didi

Javascript 三元 if 语句,将其分配给变量并递增

转载 作者:行者123 更新时间:2023-12-01 16:25:53 33 4
gpt4 key购买 nike

所以,我有这段代码,它实际上有效:
(散列将是这样的对象:{"bob"=> "12, "Roger"=> "15", etc},并且 isGood(key) 是调用函数 isGood ,如果玩家好或坏的)

let score = 0;
Object.keys(hash).forEach((key) => {
isGood(key) === true ? score += parseInt(hash[key], 10) : score -= parseInt(hash[key], 10);
});
return score;

我收到此错误消息:
Expected an assignment or function call and instead saw an expression

我设法使它正常工作而没有收到此错误消息,如下所示:
let score = 0;
Object.keys(hash).forEach((key) => {
score = isGood(key) ? score + parseInt(hash[key], 10) : score - parseInt(hash[key], 10);
});
return score;

但是,为什么第一个不是正确的方法,即使它有效?很抱歉,我在 Javascript 中遇到了约定问题。
提前致谢!
奥利维尔

最佳答案

它是有效的 JavaScript 代码。我相信错误消息来自 jshint,它是一个 linter。

这是一个相关的答案:
Ternary operator displays error in JSHint - Expected an assignment or function call and instead saw an expression

归根结底,这是一个风格问题,但在三元运算符中出现副作用是出乎意料的,这解释了为什么 linter 有规则指出这一点。这使得对代码进行推理变得更加困难,因此您通常会看到一个 if-then-else 结构。

关于Javascript 三元 if 语句,将其分配给变量并递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61611636/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com