gpt4 book ai didi

Javascript初学者查询。识别出有问题的代码行,但不知道为什么它不起作用

转载 作者:行者123 更新时间:2023-11-28 18:58:02 25 4
gpt4 key购买 nike

我希望函数 NumberAddition 接受一个字符串并返回其中每个数字的数组。例如参数“abc64,$ 22, 22xyz0”应返回数组 [64, 22, 22, 0]。我的 for 循环中的第四行是问题所在。
其目的是在对数字进行索引后将 i 在字符串中向上移动,以便它不会再次遍历相同的数字。如果我删除这一行,其余的工作正常,问题当然是一遍又一遍地计算相同的数字,直到我自然地跳过它。
为什么当包含这一行时,只计算第一个数字(在我的示例中,返回值为 [64])。我对解决这个问题的其他方法不太感兴趣,我更感兴趣的是为什么这条线没有按照我想象的那样发挥作用。谢谢!

function NumberAddition(str) { 
var array = [];
var nextInt;

for(var i = 0; i < str.length; i++){
nextInt = myParseInt(str.slice(i,10));
array.push(nextInt);
if (nextInt != null)
i = str.indexOf(nextInt,i) + nextInt.length -1;
else
break;
}
// code goes here
return array;

}


function myParseInt(str){
for(var i = 0; i < str.length; i++){

if (!isNaN(str[i]))
return parseInt(str.slice(i));
}
return NaN;
}

最佳答案

数字没有长度;字符串可以。 nextInt.length 始终返回 undefined,这意味着您将 i 设置为 NaN。尝试使用 nextInt.toString().length 代替。

关于Javascript初学者查询。识别出有问题的代码行,但不知道为什么它不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33220299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com