1.indexOf()
返回数组中第一个找到元素的位置,不存在则返回-1
a1=[23,45,67]
a1.indexOf("ab")
2.for each (for循环的一种)
调用方式:
数组.forEach(function(当前元素值,当前元素索引,数组对象){})
//三种循环方式
for(var i =0;i<10;i++){
arr[i]
循环体
}
for(var i in 数据集合){
arr[i]
循环体
}
var a1=[4,5,6,7,8]
a1.forEach(function(item,index,arr){
console.log(item,index,arr)
})
//前后台数据传输格式ajax 数据
var data1=[{"name":"zs","age":23,"number":"00123"},
{"name":"ls","age":32,"number":"0123"},
{"name":"ww","age":30,"number":"80123"},]
var sum=0
var avg=0
data1.forEach(function(item,index){
console.log(item.name,item.age,item.number)
sum+=item.age
avg=parseInt(sum/(data1.length))
})
console.log(avg)
3.map 对数组每一项进行遍历,返回新数组
a1=[3,4,5,6] // 把a1变成 a2=[6,8,10,12]
var a2 = a1.map(function(item,index,arr){
return item*2
})
console.log(a2)
*** map与forEach的区别
1.foreach只是遍历,map生成新数组
2.map比forEach速度快
3.map可以进行链式操作
a1=[3,4,5,6]
var a2=a1.map(function(item,index,arr){
return item*2
}).map(function(item1){
return item1*10
})
console.log(a2);
4.filter 数据过滤
arr.filter(function(当前元素值,当前元素索引,数组对象){})
(1)返回新数组,不对原数组修改
(2)对返回"true"的结果过滤,返回"false"的结果忽略
a1=[10,30,40,60,80] 提取出大于30的数据
a2=a1.filter(function(item){
return item>30
})
console.log(a2)
5.reduce 接收一个函数作为累加器,
数组中的每一个值,从左到右开始缩减,最终计算为一个值
arr.reduce(function(初始值,当前元素值,当前元素索引,数组对象){},初始值)
初始值可以省略
6.some 判断数组是否有满足条件的元素
(1)arr.some(function(当前元素值,当前元素索引,数组对象){})
(2)函数内部,返回true,找到了满足条件的元素,则循环结束
返回false,没找到,则循环继续
(3)函数的执行次数不一定等于数组长度
a1=[10,30,60] //判断数组是否有大于20的元素
var a2 = a1.some(function(item,index,arr){
return item>20
})
console.log(a2); // true
7.every 检测数组中所有元素是否都满足指定条件
(1)arr.some(function(当前元素值,当前元素索引,数组对象){})
(2)有一项不满足则返回false,都满足则返回true
(3)函数的执行次数不一定等于数组长度
a1=[10,30,5,60]
var a2 = a1.every(function(item,index,arr){
return item>0
})
console.log(a2); // true
every 一假即假
some 一真即真