Javascript 无法从JS中的my函数中删除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

此函数的目的是删除给定字符串的空格,然后将其转换为数字,最后将数字的每个字符放入一个空数组,即24532,应将以下[2,4,5,3,2]放入数组中。但是,当我在函数末尾控制台我的输出数组时,我在输出数组中接收到NaN值。函数中的每一步对我来说都是有意义的,但我不确定我的错误在哪里。任何帮助都将不胜感激

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.