forEach方法
需传入一个匿名函数,没有返回值
匿名函数可以传入三个形参
item item(数组第index个元素)
index(当前下标) 偶尔需要
arry(数组本身)这个一般情况下都不需要
用法
var arry = [84,4,99,68,48,87,8,1,5];
arry.forEach(function(item,index,arry){
console.log(item,index,arry);
//每次输出的值分别为 item(数组第index个元素) index(当前下标) arry(数组本身)
})
indexOf方法
查找一个值在数组中是否存在如果存在返回其所在下标如果不存在返回-1
只能查找基本数据类型不能查找对象数据类型
只有值和数据类型都匹配的情况下才返回下标
只会返回第一次出现的位置
第二个参数可以传入0到数组长度-1的任意值若传入了这个参数将从这个参数指定的位置查找
用法
var arry = ["84",4,"aa",{},48,87,"aa",function fn(){},1,5];
console.log(arry.indexOf(84)); //返回-1
console.log(arry.indexOf("84")); //返回0
console.log(arry.indexOf("aa")); //返回2
console.log(arry.indexOf({})); //返回-1
console.log(arry.indexOf(5)); //返回8
console.log(arry.indexOf("aa",5)); //返回6
console.log(arry.indexOf(fn)); //报错fn is not defined
filter方法
须传入一个匿名函数根据函数内的条件返回一个新的数组
此方法不会改变原数组
用法
var arry = [84,4,99,68,48,87,8,1,5];
var brry = arry.filter(function(item,index,arry){
return item%2;
})
console.log(brry); //输出的值为 [99, 87, 1, 5] 这里吧所有的偶数过滤掉了
map方法
须传入一个匿名函数根据函数内的返回值生成一个新的数组
此方法不会改变原数组
用法
var arry = [84,4,99,68,48,87,8,1,5];
var brry = arry.map(function(item,index,arry){
return item+index;
})
console.log(brry); //输出的值为 [84, 5, 101, 71, 52, 92, 14, 8, 13]
reduce方法
须传入一个匿名函数根据函数得到最后返回出来的值
此方法不会改变原数组
prev 上次return的值第一个为数组下标0的值
next 下个数组的值
用法
var arry = [84, 4, 99, 68, 48, 87, 8, 1, 5];
var res = arry.reduce(function (prev,next) {
return prev + next;
})
console.log(res); //输出404