Javascript 无法从JS中的my函数中删除NaN值
此函数的目的是删除给定字符串的空格,然后将其转换为数字,最后将数字的每个字符放入一个空数组,即24532,应将以下[2,4,5,3,2]放入数组中。但是,当我在函数末尾控制台我的输出数组时,我在输出数组中接收到NaN值。函数中的每一步对我来说都是有意义的,但我不确定我的错误在哪里。任何帮助都将不胜感激Javascript 无法从JS中的my函数中删除NaN值,javascript,arrays,parsing,nan,Javascript,Arrays,Parsing,Nan,此函数的目的是删除给定字符串的空格,然后将其转换为数字,最后将数字的每个字符放入一个空数组,即24532,应将以下[2,4,5,3,2]放入数组中。但是,当我在函数末尾控制台我的输出数组时,我在输出数组中接收到NaN值。函数中的每一步对我来说都是有意义的,但我不确定我的错误在哪里。任何帮助都将不胜感激 function convert(numbers){ var notString = parseInt(numbers.replace(/\s+/g, ''), 10), sNumbe
function convert(numbers){
var notString = parseInt(numbers.replace(/\s+/g, ''), 10),
sNumber = notString.toString(),
output =[];
console.log(sNumber);
for(var i = 0; i < sNumber.length; i+=1) {
output.push(+sNumber.charAt[i]);
}
console.log(output);
}
convert("1 2 2 2 2");
拆下推动装置中的前+减震器。也可以使用console.dir代替console.log
function convert(numbers){
var arystrNumbers = numbers.split(" "), aryNumbers = [];
for( var idx in arystrNumbers ) {
aryNumbers.push(parseInt(arystrNumbers[idx]));
}
return aryNumbers;
};
console.log("Before: " + strNumbers);
console.dir(convert("1 2 2 2 2"));
试试上面的方法。为什么不这样做呢
function convert(numbers){
return numbers.replace(/\s+/g,'').split('');
}
console.log(convert("1 2 2 2 2"));
console.log("1 2 2 2 2".split(' '));
实际上,如果它总是只有一个空格字符,你可以这样做
function convert(numbers){
return numbers.replace(/\s+/g,'').split('');
}
console.log(convert("1 2 2 2 2"));
console.log("1 2 2 2 2".split(' '));
希望这有帮助
问题在于.chartAt函数。这将返回一个字符串 为什么不使用Stringsplit
函数数{
返回编号.trim.split/\s+/.mapNumber;
}
文件。书写 您应该使用@Nina所说的split函数,但如果您对错误的位置感兴趣,可以尝试以下方法:
替换
charAt(i) // parentheses
到
charAt是一个函数,您需要使用括号来调用它他为什么要删除+?这是必须的,什么目的?这不是必需的。它应该是:output.pushsNumber[i];与您在答案中添加parseInt的目的相同。pushsNumber[i]将字符串推送到数组中。+将其转换为数字。问题是在字符后面有[],而不是。所以它应该是+sNumber.charAti。现在它调用函数而不是访问函数上的属性。表达式sNumber.charAt[i]未定义。Javascript并不介意您尝试去引用函数。一元加号运算符试图将未定义的数转换为一个数,并生成NaN并将其放入数组中。push+sNumber.charAt[i]~~>push+undefined~~~>pushNaN。您的示例实际上以5 x NaNYeah的数组结束,您可以使用+符号表示数字。现在就可以了。这就是方法,除了你应该。在分开之前修剪一下绳子+1.