Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
除了加法(+;)之外,所有JavaScript算术运算符都可以工作_Javascript_Jquery_Operators - Fatal编程技术网

除了加法(+;)之外,所有JavaScript算术运算符都可以工作

除了加法(+;)之外,所有JavaScript算术运算符都可以工作,javascript,jquery,operators,Javascript,Jquery,Operators,编辑:有几个线程建议作为答案,但没有一个线程上的想法非常有效。我都试过了 少校,谢谢你: 用户Eazy在他的建议中进一步评论解决了这个问题。事实证明,正确的方法是将整个帕累辛特数学放在括号中: List+=“”+List[i].team++(parseInt(List[i].wins)+parseInt(List[i].ties)+parseInt(List[i].lost))“” 原问题: 因此,我正在制作一个js代码来从数据库打印一个表。该数据库包含一个足球联赛表,其中包括球队名称、比赛获胜

编辑:有几个线程建议作为答案,但没有一个线程上的想法非常有效。我都试过了

少校,谢谢你: 用户Eazy在他的建议中进一步评论解决了这个问题。事实证明,正确的方法是将整个帕累辛特数学放在括号中:

List+=“”+List[i].team++(parseInt(List[i].wins)+parseInt(List[i].ties)+parseInt(List[i].lost))“”

原问题:

因此,我正在制作一个js代码来从数据库打印一个表。该数据库包含一个足球联赛表,其中包括球队名称、比赛获胜、平局和失利。当我把表格打印成HTML时,我想做一些数学运算来计算玩过的游戏和总分,因为数据库没有提供这些信息


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

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

List += "<tr><td>" + list[i].team + "</td><td>" + 
list[i].wins + list[i].ties + list[i].lost + "</td></tr>"
List+=''+List[i].团队+'+
列表[i]。wins+列表[i]。ties+列表[i]。丢失+“”
它返回2373

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

List += "<tr><td>" + list[i].team + "</td><td>" + 
list[i].wins * list[i].ties * list[i].lost + "</td></tr>"
List+=''+List[i].团队+'+
列表[i]。wins*列表[i]。ties*列表[i]。丢失+“”

它返回正确计算的483个Wich,因此项目显然不是字符串。正如我所说的,该代码可以与除+之外的所有其他操作符一起工作。为什么会这样?

JavaScript的类型非常弱。它假设所有可能是字符串的东西都是字符串,因此它将连接数字,因为加法是为字符串定义的。乘法、除法和减法不是为字符串定义的,因此编译器将首先检查整数运算是否可行


您可能希望使用该函数来保证正确处理数字。

JavaScript的类型非常弱。它假设所有可能是字符串的东西都是字符串,因此它将连接数字,因为加法是为字符串定义的。乘法、除法和减法不是为字符串定义的,因此编译器将首先检查整数运算是否可行

您可能希望使用该函数来保证正确处理数字。

另一种方法是@Brandon Wyatt告诉您的parseInt()将变量放在括号内

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;
const list=[
{球队:'一队',赢:5,平:3,输:2},
{球队:'第二队',赢:2,平:3,输:5}
]
让内容=”;
for(设i=0;i
使用此解决方案的JSFIDLE: @Brandon Wyatt告诉您的parseInt()的另一种替代方法是将变量放在括号内

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;
const list=[
{球队:'一队',赢:5,平:3,输:2},
{球队:'第二队',赢:2,平:3,输:5}
]
让内容=”;
for(设i=0;i
使用此解决方案的JSFIDLE:

我建议您使用
parseInt()
强制将返回值设置为整数

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

List += "<tr><td>" + list[i].team + "</td><td>" + 
parseInt(list[i].wins) + parseInt(list[i].ties) + parseInt(list[i].lost) "</td></tr>"
List+=''+List[i].团队+'+
parseInt(列表[i].wins)+parseInt(列表[i].ties)+parseInt(列表[i].lost)”“

我建议您使用
parseInt()
将返回值强制为整数

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

List += "<tr><td>" + list[i].team + "</td><td>" + 
parseInt(list[i].wins) + parseInt(list[i].ties) + parseInt(list[i].lost) "</td></tr>"
List+=''+List[i].团队+'+
parseInt(列表[i].wins)+parseInt(列表[i].ties)+parseInt(列表[i].lost)”“

这两个版本都不应该工作。你有一个
没有匹配的
并且你在.lost“代码将数字视为字符串”之后缺少了
+
。不,它们确实是字符串,所有其他操作都会强制转换为numberRoh抱歉,缺少的+和唯一的一个)(在尝试pareInt()选项后,我意外地将其留在了那里)是文章中的拼写错误,而不是实际代码中的拼写错误。这两个版本都不应该起作用。你有一个
没有匹配的
并且你在.lost“代码将数字视为字符串”之后缺少了
+
。不,它们确实是字符串,所有其他操作都会强制转换为numberRoh抱歉,缺少的+和唯一的一个)(在尝试pareInt()选项后,我意外地将其留在了那里)是文章中的拼写错误,而不是实际代码中的拼写错误。我尝试了parseInt(list[I].wins)+等等,但没有任何效果。但这是一个非常令人不安的语言特性:)这是弱类型的一个众所周知的缺点,但它的主要优点是在大多数情况下减少了编写代码的时间。在变量没有歧义的情况下,您不必考虑使用什么类型的变量。折衷是这样的边缘情况,在这种情况下,您必须明确声明希望将其视为一个整数键,在allI尝试parseInt(list[i].wins)+等之后,这可能是一个很好的折衷,但没有任何效果。但这是一个非常令人不安的语言特性:)这是弱类型的一个众所周知的缺点,但它的主要优点是在大多数情况下减少了编写代码的时间。在变量没有歧义的情况下,您不必考虑使用什么类型的变量。折衷的办法是在这样的边缘情况下,您必须显式声明希望将其视为IntegerKey