Вы говорите, что ваша проблема ( жирный выделение моя):
числа объединены вместо сложения
Но на самом деле это не так, и на самом деле это не ваша проблема.
Проблема real заключается в том, что нет число с твой код . Существует только строка с, и двоичный оператор инфикса +
для строк определен для выполнения конкатенации строк : "A" + "b" === "Ab" // not 21
.
"лучший" способ решить вашу проблему - это исправить ее в источнике , чтобы вначале вместо строк были числа:
const array = [
720,
1080
];
console.log(array.reduce((a, b) => a + b));
// 1800
Если это невозможно, например, потому что код, который генерирует это значение, является сторонним кодом вне вашего контроля, вы должны санировать и адаптировать данные как как только он входит в вашу систему , например, используя Array.prototype.map
и parseInt
, например:
const thirdPartyArray = [
"720",
"1080"
];
const myArray = thirdPartyArray.map(str => parseInt(str, 10));
console.log(myArray.reduce((a, b) => a + b));
// 1800