js遍历数组的错误方法

for (var index in myArray) { // don‘t actually do this

console.log(myArray[index]);
}

缺点:

  • 数组的索引值index是String类型的“0”,“1”,“2”等等,而不是Number类型。当你进行算术运算时(“2”+1==“21”)也许并不是你期望的结果,所以运算前需要类型转换,这很不方便。
  • 循环体不仅会遍历数组的元素,甚至连expando属性也遍历出来了。举个例子,如果你的myArray数组中有一个叫做name的属性,遍历时就将 index ==”name”也遍历出来,这样就多了一次执行。即时这些属性在数组的原型链上是可直接访问的。
  • 最让人无语的是,在某些情况下,这段代码在遍历数组元素时顺序是任意的。

一般用以下两种:

myArray.forEach(function (value) {
  console.log(value);
});

for (var index = 0; index < myArray.length; index++) {
  console.log(myArray[index]);
}

时间: 2024-11-07 23:18:06

js遍历数组的错误方法的相关文章

JS遍历数组类型元素

已停供用户不能再次停供,之前没太处理过多维数组的遍历,趁这个机会回顾一下js数组遍历 可以看出rows 获取了两条数据,为二维数组类型 方法 function batchTgWin() { var rows = frames['threeModel'].$("#moddleUserList").datagrid('getRows'); if (rows.length == 0) { alert('请至少一户进行停供!'); return; } var bhArr = []; var f

js Array数组对象常见方法总结

Array对象一般用来存储数据. 其常用的方法包括: 1.concatc()方法 concat() 方法用于合并两个或多个数组.它不会更改现有数组,而是返回一个新数组. 例如: var arr1=[1,2,3]; var arr2=[4,5,6]; var arr3=arr1.concat(arr2,"7",8,[9,10]); document.write(arr3);//1,2,3,4,5,6,7,8,9,10 2.join()方法 join方法通过指定的分隔符将数组连接成字符串.

js遍历数组对象和非数组对象

//---------for用来遍历数组对象 var i,myArr = ["a","b","c"]; for (var i = 0; i < myArr.length; i++) { console.log(i+":"+myArr[i]); }; //---------for-in 用来遍历非数组对象方法一. var man ={"1":"a","2":&qu

js遍历数组和遍历对象的区别

来源:http://www.cnblogs.com/yun007/archive/2013/06/06/3121393.html <script> //----------------for用来遍历数组对象-- var i,myArr = [1,2,3]; for (var i = 0; i < myArr.length; i++) { console.log(i+":"+myArr[i]); }; //输出结果为: 0:1 1:2 2:3 //---------fo

javascript 中遍历数组的简单方法

在Javascript中有自带方便遍历数组的方法(此方法非彼方法不要误会哦): 1 .利用for( index in array ){}; 2.利用 array.forEach( function(element, index) {}: 但是它们两个是怎么遍历数组的呢,是正序还是倒序呢? <script> var arr = ["a","b","c","d","e"]; for (key in

js遍历数组和遍历对象

<script> //----------------for用来遍历数组对象-- var i,myArr = [1,2,3]; for (var i = 0; i < myArr.length; i++) { console.log(i+":"+myArr[i]); }; //---------for-in 用来遍历非数组对象 var man ={hands:2,legs:2,heads:1}; //为所有的对象添加clone方法,即给内置原型(object,Arra

js 删除数组几种方法

var arr=['a','b','c']; 若要删除其中的'b',有两种方法: 1.delete方法:delete arr[1] 这种方式数组长度不变,此时arr[1]变为undefined了,但是也有好处原来数组的索引也保持不变,此时要遍历数组元素可以才用 for(index in arr){  document.write('arr['+index+']='+arr[index]);} 这种遍历方式跳过其中undefined的元素 * 该方式IE4.o以后都支持了 2.数组对象splice

js遍历数组重复值和数组中对象重复值

数组去除重复值: arr.indexOf() 方法返回某个指定字符串值再字符中首次出现的位置, 如果数组中没有则返回-1 var arr=[2,8,5,0,5,2,6,7,2]; function unique1(arr){ var result=[]; for (var i = 0; i < arr.length; i++) { if(hash.indexOf(arr[i])==-1){ resule.push(arr[i]); } } return result; } 数组中对象去除的重复值

遍历数组元素的方法

forEach():没有返回值,只是针对每个数组项调用指定的函数(callbackfn) every(): 返回一个布尔值(true或false),判断每个数组项是否符合指定函数的条件,符合为true,反之为false some(): 返回一个布尔值(true或false),判断每个数组项是否符合指定函数的条件,只要有任何一项返回为true,就会返回true filter(): 每个数组项调用指定的函数,条件为true的将返到一个新数组中 map(): 每个数组项调用指定的函数,返回每次函数调用