我想我已经接近解决这个问题了。这里的目标是找到字符串中的数字并将它们加在一起以找到它们的总和。 有问题的字符串中有数字和字母
说明:
我现在在哪里:
function getStringSum(str) {
let sum = 0;
for(let i = 0; i < str.length; i++){
if (str[] == typeof Number){
sum += str[i];
};
};
return sum;
};
我将 for 循环条件设置为迭代字符串,但我不认为我的“typeof”属性将字符串中的数字注册为数字,因为它们位于字符串内,我不确定情况是否如此,但我猜这就是发生的事情,所以我最大的问题是如何将数字重新分配给 number 的值,或识别字符串中的数字。非常感谢任何帮助或建议/推动正确的方向,谢谢!!
我不清楚你认为
str[] == typeof Number
是什么意思。
如果你想对字符串中的所有整数求和,你需要尝试将每个字符转换为数字,并且仅当它们不是 NaN 时才将它们添加到总和中。这是因为如果失败,
Number
将返回NaN
。
作为 for 循环:
let sum = 0;
for (const c of str) {
const num = Number(c);
if (isNaN(num) continue;
sum += num;
}
或者使用内置函数:
str.split("").map(Number).filter( (v) => !isNaN(v)).reduce( (acc, v) => acc + v, 0)