关于javascript:myArray [items] .toUpperCase不是函数

myArray[items].toUpperCase is not a function

本问题已经有最佳答案,请猛点这里访问。

当我低于代码运行时

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    var name ="Hello moorthi";
    var myArray = name.split(' ');

    setTimeout(function(){
      var nameDisplay='';
      try {
        for (var names in myArray){

          nameDisplay += myArray[names].toUpperCase()+' ';
        }
        alert(nameDisplay);
      }
      catch(err){
        console.log(err.message);
      }
    },
    1000);

未定义不是chrome中的函数错误,可以帮助我为什么会发生这种情况?


我不确定这是否能保证数组中元素的顺序。最好的解决方案是使用for循环(包括性能和顺序):

1
2
3
for (var i=0, len=myArray.length; i<len; i++){
      msgupdate += myArray[i].toUpperCase()+' ';
}

使用

1
msgupdate = myArray.map(function (i) { return i.toUpperCase() }).join(' ');

使用for/in不是一个好主意,没有hasOwnProperty检查。