Javascript 如何计算字符串中的数字?

Javascript 如何计算字符串中的数字?,javascript,Javascript,我的代码是这样的。。 我正在使用isNaN(),但问题仍然有效 function numberSearch (str) { let sum = 0; let strCount = 0; if(str === "") { return 0; }; for(let i = 0 ; i < str.length; i++) { if (isNaN(Number(str[i]))) {

我的代码是这样的。。 我正在使用
isNaN()
,但问题仍然有效

function numberSearch (str) {
    let sum = 0;
    let strCount = 0;
    
    if(str === "") {
        return 0;
    };
  
    for(let i = 0 ; i < str.length; i++) {
        if (isNaN(Number(str[i]))) {
            strCount = strCount + 1   // if it's true, +1
        }
        sum = sum + Number(str[i])
    } 
    return Math.round(sum/strCount);
}
let output = numberSearch('Hello6 ');
console.log(output); // --> 1

output = numberSearch('Hello6 9World 2,');
console.log(output); // --> 1
函数编号搜索(str){
设和=0;
设strCount=0;
如果(str==“”){
返回0;
};
for(设i=0;i1.
输出=数字搜索('Hello6 9 World 2');
console.log(输出);//-->1.
我如何数数和计算它

我使用的是
isNaN()
,但当我使用调试器时,总和是'NaN'
我不能善待你。。我不能很好地理解..

滚动查看编辑问题的答案

NaN === NaN
将是错误的,有一个很好的解释

尝试使用
isNaN()
进行检查,而不是比较

编辑:据我所知,您希望得到字符串中找到的数字的四舍五入平均值。
如果
检查被相应修改——如果检查的是一个数字,则必须增加计数和总和:

函数编号搜索(str){
设和=0;
让计数=0;
如果(str==''){
返回0;
};
for(设i=0;iconsole.log(输出);//-->6现在,17/3
滚动查看已编辑问题的答案

NaN === NaN
将是错误的,有一个很好的解释

尝试使用
isNaN()
进行检查,而不是比较

编辑:据我所知,您希望得到字符串中找到的数字的四舍五入平均值。
如果
检查被相应修改——如果检查的是一个数字,则必须增加计数和总和:

函数编号搜索(str){
设和=0;
让计数=0;
如果(str==''){
返回0;
};
for(设i=0;iconsole.log(输出);//-->6现在,17/3NaN
将计算为
true
,因为“NaN”不等于任何值,包括它本身。您需要使用
isNaN()
检查给定值是否为NaN。
NaN!==NaN
将计算为
true
,因为“NaN”不等于任何值,包括它本身。您需要使用
isNaN()
检查给定值是否为NaN。