ES5新增的方法中,都没有改变原数组
1. arr.indexOf()方法
功能:根据数据,查索引
参数:要查询的数据( 必须是数组中的数据,否则输出 -1 )
var arr = [20,13,11,8,0,11];
arr.indexOf(11); //返回第一个11的索引:2
arr.indexOf(2); //返回-1
2.arr.forEach( function (val,index,arr) ) { }
功能:遍历数组
参数:形参1:数组中的数据
形参2:索引
形参3:数组本身
var arr = [20,13,11,8,0,11];
var min = arr[0]; //假设数组的第一个元素的为最小值
arr.forEach(function(val,index,arr){
//练习一:输出数组的每个元素及其对应的下标
console.log(index,val);
//练习二:输出数组中值为奇数的元素
if(val%2){
console.log(val);
}
//练习三:求数组的最小值
if(val<min){
min = val;
}
})
alert(min);
3.arr.map( function ( val,index,arr ) ) { }
功能:遍历数组,并将修改后的新数据放在一个数组中返回
参数:函数(数据,索引,数组本身)
返回值:长度等同于老数组的新数组,新数组的元素值是每次函数return的返回值
var arr = [20,13,11,8,0,11];
var brr = arr.map(function(item)){
//练习一:将数组的每个元素都将增加到原来的1.2倍
return item*1.2;
// 此时brr为a数组每个元素的1.2倍
//练习二:若return 1,则新数组的每个元素值均为1
return 1;
}
4.arr.filter()
功能:遍历数组,并过滤数组中的数据,返回一个新数组
参数:函数
var arr = [20,13,11,8,0,11];
var brr =arr.filter(function(item)){
//返回值为奇数的元素
return item%2;
}
5.arr.some()
功能:遍历数组,并查询数组中的数据是否匹配条件
参数:回调函数
返回值:布尔值,只要回调函数返回一个true,就是true
var arr = [20,13,11,8,0,11];
var brr = arr.some(function(item){
return item>10;
})
alert(brr); //true
6.arr.every()
功能:遍历数组,并查询数组中的数据是否匹配条件
参数:回调函数
返回值:布尔值,回调函数必须全部返回true,才为true
var arr = [20,13,11,8,0,11];
var brr = arr.every(function(item){
return item>10;
})
alert(brr); //false
7.arr.reduce()
功能:;遍历,归并
参数:回调函数
返回值:最后一次函数调用的返回值,不写return返回undefined
var arr = [1,4,5,7,8,10];
var res = arr.reduce(function(prev,next){
console.log(prev+"---"+next);
return prev+next;
})
console.log(res);
/*
分析:
一开始,prev代表数组第一个元素,next指向数组第二个元素 1---4
函数有个返回值,会作为下次的prev值
5---5 返回10
10---7 返回17
17---8 返回25
25---10 返回35
*/