javascript将黑色空格计为0?

问题描述 投票:0回答:1

我正在构建一个嵌入HTML中的脚本,以生成一个从公司内部系统中提取信息的报告。

目的是建立某种漏斗,使每个阶段的记录之和。例如,我有

  • 阶段1的流程="3"
  • 第2阶段的流程="5"
  • 第3阶段的流程=" "
  • 第4阶段的流程="2"
  • 第5阶段的流程=" "

然而,当其中一个阶段为空(不是0)时,我遇到了一个问题,因为在这个特定的过程中没有阶段。例如,当我尝试添加阶段1和阶段3时,它总是返回一个空值,而它应该给出结果3(3+0)。

<p id="global_calc"></p>
<script>
{ 
var A = Stage1.system.count;
var B = Stage2.system.count;
var total = A + B;
}
document.getElementById("global_calc").innerHTML = "The total of this stage is: " + total;
</script>

Stage.system.count是系统内部的变量,它有我想最终与var total相加的数字。

但是,比如说,如果 Stage1.system.count = 3Stage2.system.count = " ", 总结果以""代替3. 怎样才能使其将黑色空间算作0?

javascript nan
1个回答
0
投票

首先可能值得检查一下你有什么变量;任何 number +""将始终给你一个字符串。

const x = 123 + " "; // "123 ";
const y = 123 + "" // "123"

我们可以在你的例子中看到这一点。

{
var A = 3;
var B = " ";
var total = A + B;
}
document.getElementById("global_calc").innerHTML = "The total of this stage is: " + total;

console.log(("The total of this stage is: " + total).replace(/ /g, '*'))
<div id="global_calc"></div>

看起来你用的是 undefined 作为加法的一部分,它返回的值是 NaN:

{
var A = 3;
var B = undefined;
var total = A + B;
}
document.getElementById("global_calc").innerHTML = "The total of this stage is: " + total;

console.log(("The total of this stage is: " + total).replace(/ /g, '*'))
<div id="global_calc"></div>

我们需要更多的细节来弄清楚为什么你会得到 " " 为总计。

如果你想用一个函数来转换 number -> number" " -> 0 然后 Number 会做。

const x = 3;
const y = " ";

console.log(Number(x));
console.log(Number(y));
© www.soinside.com 2019 - 2024. All rights reserved.