myArray [items] .toUpperCase不是一个函数

时间:2014-07-01 16:29:55

标签: javascript

当我在代码下面运行时

<script>

    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);

 </script>

在chrome中获取 undefined不是函数错误,可以帮助我为什么会这样?

2 个答案:

答案 0 :(得分:1)

使用

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

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

答案 1 :(得分:1)

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

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