我试图将大写元素登录到控制台,但是每次控制台都会引发此错误:TypeError:arrayNames [i] .toUpperCase不是函数

var hello = "Hello, ";
var arrayNames = [];

function greet(name) {

  if (name == null) {
console.log(hello + "my friend");
  }

  //Requirement UpperCase
  arrayNames.push(name);
  for (var i = 0; i < arrayNames.length; i++) {
if (arrayNames[i] === arrayNames[i].toUpperCase()) {
  console.log(hello.toUpperCase() + arrayNames[i].toUpperCase());
}
  }
  //Requirement last element

  if (arrayNames.length > 1) {
var lastElement = arrayNames.pop();
console.log(hello + arrayNames + " and " + lastElement);
  }
  else {
console.log(hello + arrayNames);
  }

}

greet(["James", "Julie", "BEN"]);

最佳答案

您正在数组上使用toUpperCase。
问题是这一行:

arrayNames.push(name);

您正在创建多维数组。
使用
arrayNames = name;

代替。

10-05 22:02