javascript считать черные пространства за 0? - PullRequest
0 голосов
/ 28 мая 2020

Я создаю сценарий, встроенный в HTML, для создания отчета, который извлекает информацию из внутренней системы компании.

Цель состоит в том, чтобы построить своего рода воронку, составляющую сумму записей на каждом из этапов. Например, у меня есть:

  • Процессы на этапе 1 = "3"
  • Процессы на этапе 2 = "5"
  • Процессы на этапе 3 = ""
  • Процессы на этапе 4 = "2"
  • Процессы на этапе 5 = ""

Однако у меня возникает проблема, когда один из этапов пуст ( это не 0), потому что в этом специфическом c процессе нет стадии. Когда я пытаюсь добавить, например, этап 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?

1 Ответ

0 голосов
/ 28 мая 2020

Сначала, наверное, стоит проверить, какие переменные у вас есть; any 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));
...