无法让数组填充循环中参数的字符

Trouble getting array to populate with characters of arguments from loop

function arrayAnalyzer(numbers){ 
var array = []; 
  for(var i = 0; i < arguments.length; i++) { 
    array.push(arguments.charAt(i)); 
  }
  console.log(array); 
} 

arrayAnalyzer(7, -3, 0, 12, 44, -5, 3);

它给我 "arguments.charAt" 无效

只需按下 arguments[i]:

function arrayAnalyzer(numbers) {
  var array = []; 
  for(var i = 0; i < arguments.length; i++) { 
    array.push(arguments[i]); 
  }
  console.log(array); 
} 

arrayAnalyzer(7, -3, 0, 12, 44, -5, 3);

你也可以用更短的方式做同样的事情:

function arrayAnalyzer(numbers) {
  // Since arguments is Array-like object let's convert it to array:
  return Array.prototype.slice.call(arguments);
} 

console.log(arrayAnalyzer(7, -3, 0, 12, 44, -5, 3));

顺便说一句 charAt 是一个 method of String prototype and arguments is an Array-like object 当然不是字符串。

一些调整将使其工作:

function arrayAnalyzer(numbers){ 
var array = []; 
  for(var i = 0; i < numbers.length; i++) { 
    array.push(numbers[i]); 
  }
  console.log(array); 
} 

arrayAnalyzer([7, -3, 0, 12, 44, -5, 3]);