<script type="text/javascript">
//新增的数组方法:
//forEach: 遍历数组,回调函数,参数是一个函数
var arr = [1,2,3,4,5,6,7]
arr.forEach(function(value){
console.log(value)
})
//map : 映射,把一个数组,按照一定规则,映射为另一个数组,不改变原数组
var arr2 = [1,2,3,4,5,6,7]
var res = arr2.map(function(v,i){
//return 后面写映射的规则
return v+0.5
})
console.log(res)
//filter : 过滤,搜索 参数是一个函数,参数会被执行多次,每次都会拿到一个返回值
//当返回值等于true 当前元素加到新数组
var arr3 = [1,2,3,4,5,6,7]
var res2 = arr3.filter(function(v){
return v>0;
//所有满足return的元素加到新数组res2
})
console.log(res2)
//过滤,搜索 对象
var arr5 = [{name:'张三',age:19},{name:'李四',age:18},{name:'王麻子',age:20}]
//删选出所以年龄大于19岁的对象
var arr5 = arr5.filter(function(v){
//return v.age>19
return v.name.indexOf('张')!==-1
//查找所有name包含'张'的对象 indexOf() !==1 : 包含括号里的
})
console.log(arr5)
//reduce : 累计求值,参数是一个函数,函数有两个参数
//1.累积变量 ,默认为数组的第一个元素, sum
//2.当前变量,默认为数组的第二个元素, v
var arr4 = [1,2,3,4,5,6,7]
var arr4 = arr4.reduce(function(sum,v){
return sum + v
//return sum * v
//return sum / v
//return sum - v
})
//初始值可以不写,默认为第一个元素
console.log(arr4)
//find : 查找,参数是一个函数,函数的返回值是查找条件
var arr6 = [{name:'张三',age:19},{name:'李四',age:18},{name:'张三他爸',age:20}]
var res3 = arr6.find(function(v){
return v.name = '张三他爸'
})
console.log(res3)
//findIndex : 找到满足条件的元素的下标,找到的:-1
var arr7= [{name:'张三',age:19},{name:'李四',age:18},{name:'张三他爸',age:20}]
var res4 = arr7.findIndex(function(v,i){
return v.name == '李四'
//必须是两个 ==
})
var res5 = arr7.findIndex(function(v,i){
return v.age == '30'
// 必须是两个 ==
})
console.log(res4)
console.log(res5)
//some : 判断数组中是否有一些元素满足条件 及果实true 说明至少有一个满足条件
var arr8= [{name:'张三',age:19},{name:'李四',age:18},{name:'张三他爸',age:20}]
var flag = arr8.some(function(v){
return v.age >=18
//判断是否至少有一个age大于18,有一个结果就为true
})
var flag2 = arr8.some(function(v){
return v.name == '王二麻子'
})
console.log(flag)
console.log(flag2)
//every : 判断数组中是否所有的元素都满足条件
var arr9= [{name:'张三',age:19},{name:'李四',age:18},{name:'张三他爸',age:20}]
var flag3 = arr9.every(function(v){
return v.age>15
})
console.log(flag3)
var flag4 = arr9.every(function(v){
return v.age>21
})
console.log(flag4)
</script>