循环遍历/ forEach,$.each,map,for区别

            var arr=[1,2,3];
                     var obj={
a:"这是a",
b:"这是b",
r:"这是r"

}

                for循环

for(var i=0;i console.log(i,arr[i])

}

                for in循环

for(var i in obj){//或者是arr
console.log(i,obj[i]) //属性值     obj[属性]
}

对于while 我不太熟悉 有更好的见解请赐教 只知道while循环是用于不明确次数的循环

                forEach循环

var arrForeach=arr.forEach(function(value,index,arrReality){//key值,下标,数组本身
console.log(value,index,arrReality)
//打印三次 分别是
/*
1,0,[1,2,3]
2,1,[1,2,3]
3,2,[1,2,3]
*/
return value+1
})

console.log(arrForeach,"arrForeach")//undefined

                map循环

var arrMap=arr.map(function(value,index,arrReality){
console.log(value,index,arrReality)
//打印三次 分别是
/*
1,0,[1,2,3]
2,1,[1,2,3]
3,2,[1,2,3]
*/
return value+1
})
console.log(arrMap,"arrMap")//[2,3,4]
对比一下阔以发现,map方法的使用方法和forEach基本是差不多的,但是map会创建一个新的数组(或者是对象),而forEach不会;如果上边的代码是
var arrMap=arr.map(function(value,index,arrReality){
console.log(value,index,arrReality)
})
你再打印的话 就是[undefined,undefined,undefined]

                        $.each循环
var $each=$.each(arr,function(index,value,arrReality){
console.log(index,value,arrReality)
/*
0 1 undefined
1 2 undefined
2 3 undefined
*/
arr=[7,8,9]
return value+10;
})
console.log($each,"$each") //结果就是 [1,2,3]
console.log(arr,"newARR")
可以看出 $.each方法和map方法主要有两个不同点
第一个
$.each方法和map方法的虽然都是创建一个数组(对象)$.each方法只是把原先的数组(对象)复制了一下,虽然你可能改变了原数组(对象),
而map方法是创建一个结构相同但是内容不一定相同的数组(对象)
第二个
$.each方法的参数是两个,没有数组(对象)本身,并且参数的顺序是 下标(index),然后才是key(value)
而map方法 是三个参数 ,具有数组(对象)本身,但是参数的顺序却是 key值(value)下标(index) 最后是数据源本身 (arrReality),这一点是和 forEach一样的
可以看出 $.each方法和forEach方法主要有两个不同点
第一个
forEach不会创建一个新的数组(对象)
第二个 
和$.each方法和map不同点第二个的一样
还有什么不同之处,请留言

你可能感兴趣的:(前端)