我有一个函数,我想计算字符串中包含的数字。
str='hel4l4o';
我创建的代码:
function sumDigitsg(str) {
var total=0;
if(isNaN(str)) {
total +=str;
console.log(total);
}
//console.log(isNaN(str));
return total;
}
答案 0 :(得分:1)
您可以使用正则表达式来匹配所有数字(.match(/\d+/g)
),然后使用.reduce
来对匹配的数字求和:
const str = 'hel4l4o';
const total = str.match(/\d+/g).reduce((sum, n) => sum + +n, 0);
console.log(total);
对于您的代码,您需要遍历字符,然后使用if(!isNaN(char))
检查它是否为数字。之后,您需要使用unary plus operator(+char
)之类的字符将其转换为数字,以便可以将其添加到total
:
let str = 'hel4l4o';
function sumDigitsg(str) {
let total = 0;
for(let i = 0; i < str.length; i++) {
let char = str[i];
if (!isNaN(char)) {
total += +char;
}
}
return total;
}
console.log(sumDigitsg(str));