我堅持一個簡單的邏輯,結果我有一個包含正數和負數的陣列。
我需要的是對負數和正數相加并列印結果
const arr = ['-8', '-3', '1', '-4', '0']
// expected results = -14
到目前為止,我嘗試的是用以下方法區分消極和積極:
const positive = scores.filter(posNumber => posNumber >= 0)
const negative = scores.filter(negNumber => negNumber < 0)
但如果我對正數執行減少,結果會得到“010”....
uj5u.com熱心網友回復:
這里的問題是您的陣列實際上是一個字串陣列而不是數字。所以實際上,您需要將陣列轉換為數字陣列,然后您可以對這些值求和。
const arr = ['-8', '-3', '1', '-4', '0'];
const sum = arr.reduce((acc, value) => acc Number(value), 0); // -14
uj5u.com熱心網友回復:
那些是字串。您需要先將它們轉換為數字:
const arr = ['-8', '-3', '1', '-4', '0'].map(Number);
const positive = arr.filter(posNumber => posNumber >= 0);
const negative = arr.filter(negNumber => negNumber < 0);
const positiveSum = positive.reduce((sumSoFar, current) => sumSoFar current, 0);
const negativeSum = negative.reduce((sumSoFar, current) => sumSoFar current, 0);
要不就
const arr = ['-8', '-3', '1', '-4', '0'].map(Number);
const sum = arr.reduce((sumSoFar, current) => sumSoFar current, 0);
為總和。
uj5u.com熱心網友回復:
let sum = 0
arr.forEach(s => sum = s)
console.log(sum)
" s" 將值轉換為整數。您可以使用parseInt
uj5u.com熱心網友回復:
借助 Luís,一旦將字串轉換為整數,如果您只是在尋找總和,則無需將正數與負數分開。
uj5u.com熱心網友回復:
您可以使用 parseInt 將字串轉換為數字,然后求和。
let sum = arr.reduce((accum,each)=>{
accum = accum parseInt(each);
return accum;
},0);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/461549.html
標籤:javascript
