I have a custom array of formatted numbers like the following:
[15.325,00 2.314,00 99.990,00 1.112.345,00]
How can I sum them to 1.229.974,00
? Do I have to reformat them to integers (by some means), sum them and format the result? This format doesn’t look like a standard one.
Advertisement
Answer
Made an honest attempt. Looked short until it came to reformatting the answer. Any constructive criticism appreciated!
let a = ["15.325,00", "2.314,00", "99.990,00", "1.112.345,00"]; function untitled(originalArrayString) { //turn array into array of numbers let arrayNum = originalArrayString.map(function(item) { return asNumber = Number.parseFloat(item.replace(/./g, '') .replace(/,/, '.')); }) //sum up numbers let answerAsNumber = arrayNum.reduce(function (accumulator, number) { return accumulator + number; }); //give answer in format function answerFormatted(answerAsNumber) { let numberToString = String(answerAsNumber); let reverse = numberToString.split("").reverse().join(""); let addPeriod = ''; if (reverse.includes('.')) { let replaceDecimalWithComma = reverse.replace(/./, ','); addPeriod = replaceDecimalWithComma.replace(/(,)?d{3}B/g, '$&.'); } else { addPeriod = reverse.replace(/d{3}B/g, '$&.'); addPeriod = addPeriod.replace(/^/, '$&00,'); } return reverted = addPeriod.split("").reverse().join(""); } return answerFormatted(answerAsNumber); } console.log(untitled(a));