Reputation: 33
How to sum up only numbers that is merge with alphabets inside an argument in javascript
function getSum(){}
getSum("1ha","22rr","33y",44) => the output will be like this 100
I have tried this but this is not the expected result
function getSum () {
return Array.from(arguments).reduce((sum, value) => {
if (Array.isArray(value)) {
sum += getSum.apply(this, value)
} else {
sum += Number(value)
}
return sum
}, 0)
}
Can someone help me with this please!
Upvotes: 2
Views: 74
Reputation: 522254
We can try a reduction after using match()
on each argument:
function getSum() {
return Array.from(arguments).map(x => x.toString().match(/\d+/))
.reduce((partialSum, a) => partialSum + parseInt(a), 0);
}
var output = getSum("1ha", "22rr", "33y", 44);
console.log(output);
Upvotes: 3