首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >除加法(+)外,所有JavaScript算术运算符都有效

除加法(+)外,所有JavaScript算术运算符都有效
EN

Stack Overflow用户
提问于 2018-06-19 04:14:01
回答 2查看 105关注 0票数 0

编辑:有几个帖子被建议作为答案,但这两个帖子中的任何一个都没有很好的工作。我都试过了。

主要感谢:用户Eazy在他的建议中发表了进一步的评论,解决了这个问题。事实证明,正确的方法是将整个paresInt数学放在括号中:

List += "“+ listi.team + "”+ (parseInt(listi.wins) + parseInt(listi.ties) + parseInt(listi.lost)) "“

原问题:

因此,我正在编写一个js代码来打印数据库中的表。该数据库包含一个足球排名表,其中包含球队名称、赢球、平局和输球情况。当我将表格打印到HTML时,我想做数学运算来计算玩过的游戏和总积分,因为数据库不提供这些信息。

最奇怪的是,如果我将表中的(*)值相乘,它就能工作。如果我减去(-)或除(/)这些数字,它就会起作用。但是,如果我尝试将数字与+相加,代码会将数字视为字符串,并将数字的下一个数字写在彼此之间。我以前遇到过这个问题,我很困惑。解决方案可能是非常明显的,但我就是想不出来。

如果一支球队赢了23场比赛,平了7场,输了3场,那么总共打了33场比赛。所以如果我计算一下:

代码语言:javascript
复制
List += "<tr><td>" + list[i].team + "</td><td>" + 
list[i].wins + list[i].ties + list[i].lost + "</td></tr>"

它返回2373

如果我使用不同的运算符,比如乘法:

代码语言:javascript
复制
List += "<tr><td>" + list[i].team + "</td><td>" + 
list[i].wins * list[i].ties * list[i].lost + "</td></tr>"

如果计算正确,它将返回483个wichs,因此这些项显然不是字符串。正如我所说的,代码可以与除+以外的所有其他运算符一起使用。为什么会这样呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-19 04:32:10

我建议你使用parseInt()将返回值强制转换为整数。

因此,您的代码可能如下所示:

代码语言:javascript
复制
List += "<tr><td>" + list[i].team + "</td><td>" + 
parseInt(list[i].wins) + parseInt(list[i].ties) + parseInt(list[i].lost) "</td></tr>"
票数 0
EN

Stack Overflow用户

发布于 2018-06-19 04:29:02

@Brandon Wyatt告诉您的parseInt()的替代方法是将变量放在括号中。

代码语言:javascript
复制
const list = [
    {team: 'Team 1', wins: 5, ties: 3, lost: 2},
  {team: 'Team 2', wins: 2, ties: 3, lost: 5}
]

let content = "";
for (let i = 0; i < list.length; i++) {
    content += "<tr><td>" + list[i].team + "</td><td>" + (list[i].wins + list[i].ties + list[i].lost) + "</td></tr>";
}


document.getElementById("teams").innerHTML = content;

jsfiddle使用这个解决方案:https://jsfiddle.net/j7nfqvmr/21/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50916822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档