读书人

javascript for in 数组遍历的有关问题

发布时间: 2012-08-26 16:48:06 作者: rapoo

javascript for in 数组遍历的问题

对于数组遍历,一般的做法是:

?

//新建数组  var arr = new Array();  arr.push("abc");  arr.push("abc1");  //对数组进行遍历  for(var i = 0;i < arr.length; i++){       console.log(arr[i]);  }  

?

?使用javascript的for in遍历数组

?

for(var i in arr){       console.log(i + "  " + arr[i]);}
?

本该只有2项元素的数组,结果显示出来了4项,比我们预期多了两项indexOf和remove:

?

0  abc1  abc1indexOf  function(c){for(var b=0,a=this.length;b<a;b++){if(this[b]==c){return b}}return -1} remove  function(b){var a=this.indexOf(b);if(a!=-1){this.splice(a,1)}return this} 
?

这样就暴露出了for in 遍历数组的缺点,增强判断条件解决这个问题。

?

?

for ( var i in arr) {if (arr.hasOwnProperty(i)) {console.log(i + '' + arr[i]);}}
?

这里用的的hasOwnProperty()函数方法是返回一个布尔值,指出一个对象是否具有指定名称的属性。

此方法无法检查该对象的原型链中是否具有该属性;该属性必须是对象本身的一个成员。

?

?

读书人网 >JavaScript

热点推荐