js Array数组 for in 多出一个元素

调程序时,发现for in有问题主要原因是使用Array.prototype导致的

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title></title>
 6 </head>
 7 <body>
 8 <button onclick="myFunction()">点我</button>
 9 <script>
10 Array.prototype.myUcase=function(){
11     }
12 function myFunction(){
13     var fruits = ["Banana", "Orange", "Apple", "Mango"];
14     
15     var x=document.getElementById("demo");
16     //x.innerHTML=fruits;
17     for (i=0;i<fruits.length;i++){
18         console.log(fruits[i]);
19     }
20     console.log('--------------------------');
21     for(m in fruits){
22         console.log(fruits[m]);
23     }
24 }
25 </script>
26 </body>
27 </html>

如果不加上面那句

Array.prototype.myUcase=XXX

的话,没有最后的f(),否则的话是有一个的.

教训: 因为实际项目中,可能引用别人的Array中有prototype,不太可控:所以最好使用普通的for或者foreach循环

posted @ 2020-08-31 16:19  zhaogaojian  阅读(518)  评论(0编辑  收藏  举报