1.for
1.for 最重要的 兼容性好
var arr=[10,203,44,54,5]
for(var i=2;i<4;i++){
arr[i]
}
for循环是最基础的 也是最重要的遍历器之一
2.for-in
var arr=[10,203,44]
for (var i in arr) {
console.log(i,arr[i])
}
var obj={name:"karen",age:23}
for(var key in obj){
console.log(key)
obj[key]
obj.key
}
通过这两个案例我们就能够知道for in 的作用forin是通过遍历数组的下标从而找到找到对应的储存的数据,遍历对象是一个数组 返回的就是数组的下标,通过语法糖arr[i]可以取到数据,而如果遍历对象是一个对象那么,我们的返回的就是对象中key的值,我们可以通过语法糖.语法或者标准语法obj[key]来取出对象中保存的值
3.foreach
var arr = [10, 203, 44]
var re=arr.forEach(function(el){
console.log(el)
})
类似于for循环,不过是传入的参数是一个回调函数,el就表示每次遍历的数据
4.map()
var arr=[10,20,9]
var re=arr.map(function(el){
console.log(el)
return el*el
})
console.log(re,arr)
方法创建一个新数组,数组中的元素为原始数组元素调用函数处理后的值。 函数是设定好的
和forEach()一样,除了抛出异常以外,没有办法中止或跳出 map() 循环。如果在map中return没有内容时,会让新数组对应值为undefined
5.filter()
var arr=[10,80,34,50]
var re=arr.filter(function(el,index,arr){
console.log(el)
if(el>18){
return true
}else{
return false
}
})
console.log(re)
filter()方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。
我们发现,新数组中的元素都为回调函数返回true的元素,而且原数组不会改变
6.reduce()
var arr=[10,20,4,5]
var re=arr.reduce(function(n1,n2){
console.log(n1,n2,1111111111)
return n1+n2
},10000)
console.log(re)
reduce是一个比较特殊的遍历器,n1和n2分别表示的是什么?
为第一次循环n1打印的10000取的reduce的第二个参数,redece的第一个参数是回调函数
回调函数里面有n1,n2两个参数
n1是表示初始值 n2表示的是下一个值 也就是10
而n1+n2也就返回了下一次的n1的初始值
最后是一个求和的结果