javascript里面foreach遍历函数介绍,以及跟jquery里面each的区别
foreach是把数组从头到尾遍历一遍,有三个参数分别是:数组元素,数组索引,数组本身。如果是一个参数,就是数组元素。
var data=[1,2,3,4,5,6]; var sum=0; data.forEach(function(v){ sum+=v; doucument.write(sum+"</br>"); }) data.forEach(function(o,p,q){ //分别对应:数组元素,元素的索引,数组本身。 q[p]=0+1; }) document.write(data);
注意:forEach无法在所有元素都传递给调用的函数前停止,(for循环有break机制),如果要提前终止,必须把foreach放在try块中,
function foreach(a,b,c){ try{ a.forEach(b,c){ } catch(e){ if(e===foreach.break) return; else throw e; } } }
然后,jquery里面的each也有遍历的功能。
1.遍历对象
$.each(Object,function(p1,p2){ this; //这里的this指向每次遍历中Object的当前属性值 p1;p2; //访问附加参数 },['参数1','参数2'])
2.遍历数组
$.each(Array,function(p1,p2){ this; //这里的this指向每次遍历中Array的当前元素 p1;p2; //访问附加参数 },['参数1','参数2']);
3.遍历对象(没有参数)
$.each(Object, function(name, value) { this; //this指向当前属性的值 name; //name表示Object当前属性的名称 value; //value表示Object当前属性的值 });
4、遍历数组(没有附加参数)
$.each(Array, function(i, value) { this; //this指向当前元素 i; //i表示Array当前下标 value; //value表示Array当前元素 });
下面提一下jQuery的each方法的几种常用的用法
Js代码
var arr = [ "one", "two", "three", "four"];
$.each(arr, function(){
alert(this);
});
//上面这个each输出的结果分别为:one,two,three,four
var arr1 = [[1, 4, 3], [4, 6, 6], [7, 20, 9]]
$.each(arr1, function(i, item){
alert(item[0]);
});
//其实arr1为一个二维数组,item相当于取每一个一维数组,
//item[0]相对于取每一个一维数组里的第一个值
//所以上面这个each输出分别为:1 4 7
var obj = { one:1, two:2, three:3, four:4};
$.each(obj, function(key, val) {
alert(obj[key]);
});
//这个each就有更厉害了,能循环每一个属性
//输出结果为:1 2 3 4
最后注意不同的写法:$(currentTags).each(function(i,item){
})
$.each(currentTags,function(i,item){
}) 都是可以的。
for ...in
for...in 语句用于对数组或者对象的属性进行循环操作。
for ... in 循环中的代码每执行一次,就会对数组的元素或者对象的属性进行一次操作。
语法:
for
(变量in
对象) { 在此执行代码 }
“变量”用来指定变量,指定的变量可以是数组元素,也可以是对象的属性。