Javascript遍历的详细解释

为了方便示例,现有的数组和JSON对象如下所示


无功demoarr = { 'javascript ','gulp ','css3 ','grunt ','jquery ','angular};
无功demoobj = { {
Aaa:'javascript,
Bbb:'gulp,
Ccc:'css3,
Ddd:'grunt,
易:'jquery,
Fff:'angular
};



对于

你可以直接看样品。它用得太多了。这很简单。


(函数(){())
对于(var i = 0,len = demoarr.length;我< len;i++){
如果(i = 2){
函数执行终止;
循环终止;
继续;循环跳过
};
console.log('demo1arr { +我+}:+ demo1arr {我});
}
});
在for循环中,有几个


关于for循环,有几点需要注意。

for循环中的i在循环结束后存在于循环的范围和范围中。为了避免影响范围内的其他变量,它使用函数自执行的方式来隔离它(())。
避免使用对(var i = 0;i < demo1arr.length;i++){ }的方式,长度的数组的每个实例进行了计算,效率低于上述方式。也可以把变量声明在前面的为提高阅读



var i = 0,len = demo1arr.length;
(为了;我;我;+);



有几种方法跳出循环。


返回函数执行终止

终止循环结束。

跳过了继续循环。

完整的例子



对于(ARR | obj变量项){ }可以用于遍历数组和对象

当阵列走过,项目代表的指标值,和ARR代表元ARR {项目}对应当前索引值。
当对象是走过,项目所代表的核心价值,和ARR代表值obj {项目}键对应的值。



(函数(){())
对于(VAR我demoarr){
如果(i = 2){
返回;函数执行终止。
循环终止;
跳过循环;
};
console.log('demoarr { +我+}:+ demoarr {我});
}
console.log(' -------------);
});



至于内,有几点需要注意:

在for循环和for循环中,i值在循环结束后保留,因此,通过使用函数自执行来避免。
利用返回,break和continue跳出环与环相一致,但做为回报,我们需要注意在函数体,返回表示该函数的执行被终止,即使外码流传,它将不再继续执行,就终止。环,和下面的代码将继续。



函数RES(){
无功demoarr = { 'javascript ','gulp ','css3 ','grunt ','jquery ','angular};

对于(在demoarr var item){
如果(项目= 2){
返回;
};
console.log(项目,demoarr {项目});
}
console.log('desc ''function水库'); / /不执行
}




foreach

demoarr.foreach(功能(arg){ })

参数精氨酸代表数组每个项的元素,示例如下


demoarr.foreach(function(e){)
如果(E = = 'css3){
返回;循环跳过
错误;

};
console.log(E);
})



有一个特别的地方要注意。

foreach不能穿越的对象

foreach不能用在伊江,和Firefox和Chrome实现这个方法

使用foreach不能休息,继续跳出循环,并利用回归的时候,效果与继续在循环一致

做/尽管

函数的实现如下,但要注意的一点是,当使用继续时,如果把+放在后面,那么+ +的值就不会改变,它最终将进入死胡同。

不建议以DO的方式遍历数组。

直接使用…




(函数(){())
var I=0,
demoarr.length len =;
当(i){
如果(i = 2){
函数执行终止;
循环终止;
继续;循环将被跳过,因为在代码后面无法执行,i值不会改变,所以循环将在这里被小心地卡住!!
};
console.log('demoarr { +我+}:+ demoarr {我});
++;
}
console.log(' ------------------------);
});

做…
(函数(){())
var I=0,
demo3arr.length len =;
{做
如果(i = 2){
中断;循环终止
};
console.log('demo2arr { +我+}:+ demo3arr {我});
++;
}(i);
});



每一美元。

美元。每个(demoarr | demoobj,功能(E,ELE))

可用于遍历数组和对象,其中E表示索引值或键值,元素是值。


美元。每个(demoarr,功能(E,ELE){
console.log(E,ELE);
})



输出

0 Javascript

1

2新

3咕噜

4jQuery

5 角

这里有很多地方值得注意。

使用返回或返回true跳过一个循环并继续以下循环
返回false用于终止循环的执行,但不会终止函数执行。
无法使用中断并继续跳过循环。
该循环中输出的值类似于下面的值





console.log(本);
字符串{ 0:

console.log(=元);
/真




关于上面的值,遍历




$(每个函数(E,元素){)
console.log(E,ELE);
})

0
1
2
43




为什么长{ { primitivevalue } }没有走过了突然,答案是Javascript的高级编程,这意味着Javascript的内部属性设置的可枚举对象的数据属性为false。




内部属性视图长度
console.log(Object.getOwnPropertyDescriptor(,'length '));
对象/ {价值:4、可写:假,假,假可枚举:可配置:}



$($)与此不同,但遍历结果是相同的,您可以在测试代码中打印出来。

(从每一美元)。

专门用于遍历domlist


每一个函数(i,元素){
(我console.log,ELE);
/ / console.log(= =元); / /真的
美元(这个)。Html(I);
如果($(this)。Attr('data-item)= =){
$(这)。Html('data-item:做的);
};
})



i:序列值元素:仅是当前遍历的DOM元素。
当前正在遍历DOM元素,无法调用jQuery方法。
($)=($)当前是jQuery对象元素,可以调用jQuery操作的jQuery方法


穿越domlist用

因为domlist不是数组,它是一个对象,只是因为它的核心价值是0, 1, 2…这种感觉类似于数组,但是直接遍历的结果如下所示


无功domlist = document.getelementsbyclassname('its);
对于(在domlist var item){
console.log(项目,':' + domlist {项目});
}
0:
1:

5 /长度:
函数(项目){项目:
功能(nameditem){} / / nameditem:



所以当我们遍历domlist使用,我们需要转换成一个数组domlist


VaR既= { }。slice.call(domlist);
对于(RES中的var项){ }


类似的争论对象,对象的功能和性能当然是字符串,可以走过,但因为其他字符串属性可以设置为false,那么数组遍历的结果是一样的,也不必担心这个问题。

小小的补充

如果你发现有人写了一个函数,不要惊慌,不要以为他很高。




+函数(根,结构,未定义){

}(窗口、函数(){)
函数(人){ }
})



(())函数(){ }!(自)实现以来,(+)(+)函数(三){ }函数。

以上是本文的全部内容,希望能对大家有所帮助。