遍历器:取出数据容器中的每一个元素的工具
1.for(最重要 兼容性最好)
var arr = [1,2,3,4,5]
for (var i=0;i<arr.length;i++){
console.log(arr[i])
}
2. in
var arr = [1,2,3,4,5]
for(var i in arr){
console.log(i,arr[i])
}//i是下标
var obj={name:"zhangsan",age:18}
for(var kay in obj){
console.log(kay,obj[kay])
}
3.forEach函数
var arr=[10,2,3,5]
arr.forEach(function(el,index,arr){
console.log(el,index,arr)
})//没有返回值 有几个元素调几次函数 el是遍历的元素 index是元素下标 arr是原函数 后两个参数可不写
4.map函数
var arr=[10,2,3,5]
arr.map(function(el){
console.log(el)
})//和forEach用法相同 但是它有返回值
5. filter函数
filter some every reduce reduceRight(用法都一样)
var arr=[1,9,7,66,7]
arr.filter(function(el){
console.log(el)
})//返回值为布尔值 默认有布尔值
6.some和every函数
var arr=[10,2,3,5]
var re= arr.some(function(el){
return el>50//整体筛选 没有大于50的 就返回false 有一个成立就返回true 有一个成立就退出 后面的不会再比较
//every和some相反 只要返回了false就结束
})
console.log(re)
7.自己设计forEach函数
var arr = [1, 8, 223, 6]
Array.prototype.myforEach = function(callback) {
for (var i = 0; i < this.length; i++) {
callback(this[i])
}
}
arr.myforEach(function(el) {
console.log(el)
})
8.计算总价
var arr = [{
title: "鱼香肉丝",
price: 18,
count: 2
}, {
title: "大虾",
price: 48,
count: 1
}, {
title: "鸡公煲",
price: 20,
count: 2
}]
var re = arr.reduce(function(n1,n2) {
return n1 + n2.price * n2.count
}, 0)
console.log(re)//计算总价 n1是前一个相加得到的 n2是下一个传入的参数