字符串中的数字总和-Javascript

时间:2018-10-25 00:00:09

标签: javascript string numbers digits

有关以下内容的任何帮助。该函数应采用字母和数字混杂的任何字符串。它应该将出现在字符串中的所有数字加在一起,然后返回总数。

例如'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;
    }

2 个答案:

答案 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);