ES5中新增数组的方法
1.indexof()
格式:数组.index(item, start);
参数: item 任意的数据;
start 下标 查找的起始位置(可以不传入,默认是0)
功能:在数组中查找第一次出现item元素下标,从start开始去查找
返回值: -1 没有查找到 >=0 查找到的元素的下标。
代码:
var arr = [10, 20, 30, 40, 50, 20, 30];
var index = arr.indexOf(120, 2);
alert(index);
2、forEach ()数组的遍历
forEach 是 ES5 中操作数组的一种方法,主要功能是遍历数组,事实上for 循环的加强版,该语句需要一个回调函数,作为参数。回调函数的形参,依次为,value:遍历的数组内容;index:对应的数组索引,array:数组本身。
代码:
var arr = [10, 20, 30, 40, 50];
arr.forEach(function(item, index, arr){
/*
item当前遍历到的元素
index当前遍历到元素的下标
arr数组本身
*/
document.write(item + ", " + index + ", " + arr + "<br/>");
});
3、map()映射
功能:根据条件把原来的数组变成一个新的数组
代码:
var arr = [10, 20, 30, 40, 50];
var newArr = arr.map(function(item, index, arr){
//遍历要做的事情 映射关系
return item * 1.3;//每一个映射要反应的关系
});
alert(newArr);
alert(arr);
4.filter()
功能:根据条件对原数组进行过滤,不该变原来的数组。
代码:
var arr = [10, 20, 30, 40, 50];
var newArr = arr.filter(function(item, index, arr){
//过滤的条件
return item > 20;//过滤数组中大于20的数
});
alert(newArr);
alert(arr);
5、some()
功能:在数组中查找是否有符合条件的元素,有返回true,没有返回false。
短路操作:只要找到符合条件的元素,后面的循环就停止了。
代码:
var arr = [10, 20, 30, 40, 50];
var res = arr.some(function(item, index, arr){
//过滤的条件
return item > 20;
});
alert(res);
alert(arr);
6、 every ()
功能:在数组中查找每一个元素是否有符合条件,符合返回true,不符合返回false。
短路操作:只要找到不符合条件的元素,后面的循环就停止了。
代码:
var arr = [10, 20, 30, 40, 50];
var res = arr.every(function(item, index, arr){
alert(item);
//过滤的条件
return item < 30;
});
alert(res);
alert(arr);
7、reduce 归并(累加器)
通常用来做数组的累加,用prev + next,对下一元素进行归并
prev 第一次是(即初始值)下标为0的元素,第二次开始 上一次遍历后的返回值;
next 从下标1开始,当前遍历到的元素
arr数组本身
代码举例:
var arr = [10, 20, 30, 40, 50];
var res = arr.reduce(function(prev, next, index, arr){
alert(prev + ", " + next);
return prev + next;
});
alert(res);
运行上面的代码我们知道,
第一次结果是10,20(即初始值为10,下一个元素为20)
第二次结果是30,30(把10和20归并后值为30,下一个元素为30)
第三次结果是60,40(30和30归并后值为60,下一个元素为40)
第四次结果是100,50(60和40归并后值为100,下一个元素为50)
第五次结果是150(即100和50归并后的值)