有学生问到js中forEach这个方法
于是进行了一些简单的研究
数组循环变量,最先想到的就是 for(var i=0;i<count;i++)这样的方式了。
除此之外,也可以使用较简便的forEach 方式
Firefox 和Chrome 的Array 类型都有forEach的函数。使用如下:
var arryAll = [];
arryAll.push(1);
arryAll.push(2);
arryAll.push(3);
arryAll.push(4);
但是以上,代码在IE6/7/8中却无法正常工作。
因为IE的Array 没有这个方法
让IE兼容forEach方法
if (!Array.prototype.forEach) {
Array.prototype.forEach = function(callback, index) {
var T, i;
var O = Object(this);
var len = O.length;
T = index;
for (i=0;i < len;i++) {
var kValue;
if (i in O) {
kValue = O[i];
callback.call(T, kValue, i);//call方法 让括号里的继承callback全部的方法属性
}
}
};
}
如何跳出循环?
Js 此种状况的forEach 不能使用continue, break; 可以使用如下两种方式:
1. if 语句控制
2. return . (return true, false)
以下例子是取出数组中2的倍数和3的倍数的数;
<script>
var arryAll = [1,2,3,4,5];
var arry1 = [];
arryAll.forEach(function(e){
if(e%2==0)
{
arry1.push(e);
}else if(e%3==0)
{
arry1.push(e);
}
})
console.log(arry1)
</script>