有关以下内容的任何帮助。该函数应采用字母和数字混杂的任何字符串。它应该将出现在字符串中的所有数字加在一起,然后返回总数。
例如'foo5bar6cat1'=> 12 'foo98cat'=> 17
我尝试了以下方法,但是没有运气。
function sumDigitsFromString (str) {
let arr = str.split('');
arr = arr.reduce(function(a, b) {
return Number('0') + Number('a');
}, 0);
return arr;
}
答案 0 :(得分:0)
您可以拆分该字符串,然后使用函数reduce
对所有数字求和。
let add = s => s.split('').reduce((a, c) => a + (isNaN(+c) ? 0 : +c), 0);
console.log(add('foo5bar6cat1'));
console.log(add('foo98cat'));
.as-console-wrapper { max-height: 100% !important; top: 0; }
答案 1 :(得分:0)
您可以使用match
来获取字符串中的数字,并使用reduce
来捕获数字。
function sumDigitsFromString(str) {
return str.match(/\d/g).reduce((n, c) => n + +c, 0);
}
const out = sumDigitsFromString('foo5bar6cat1');
const out2 = sumDigitsFromString('foo98cat');
console.log(out, out2);