对下面的内容有任何帮助。该函数应接受任何由字母和数字组成的字符串。它应该将字符串中出现的所有数字相加,并返回总数。
例如'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;
}
发布于 2018-10-25 08:03:31
您可以拆分该字符串,然后使用函数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; }
发布于 2018-10-25 08:37:29
您可以使用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);
https://stackoverflow.com/questions/52979510
复制相似问题