我正在构建一个嵌入HTML中的脚本,以生成一个从公司内部系统中提取信息的报告。
目的是建立某种漏斗,使每个阶段的记录之和。例如,我有
然而,当其中一个阶段为空(不是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 = 3 和 Stage2.system.count = " ", 总结果以""代替3. 怎样才能使其将黑色空间算作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));