ECMA5新增的数组方法
1、indexOf(子串,开始查找的位置):若找到,返回子串第一次出现的位置,否则返回-1。
例:
var arr = [10,20,30,40,10];
//1、indexOf
var res;
res = arr.indexOf(10,2);
document.write(res+"<br/>");
document.write("<br/>");
结果:4
2、forEach():遍历数组
arr.forEach(function(item, index, array){
操作
})
其中item指当前遍历到的元素,index指当前遍历到的下标,array指当前遍历的数组。
例:
var arr = [10,20,30,40,10];
arr.forEach(function(item, index, array){
document.write(item+" ");
})
document.write("<br/>");
结果:
10 20 30 40 10
3、map():映射,即遍历-操作-返回
arr.map(function(item, index, array){
操作
})
其中item指当前遍历到的元素,index指当前遍历到的下标,array指当前遍历的数组。
例:
var arr = [10,20,30,40,10];
var newArr = arr.map(function(item, index, array){
return item+2;
})
document.write(newArr+"<br/>");
document.write("<br/>");
结果:
12,22,32,42,12
4、reduce():归并
arr.reduce(function(pre,next, index, array){
操作
})
其中pre指上一次遍历return后面的值,next指当前遍历到的元素,index指当前遍历到的下标,array指当前遍历的数组。
例:
var arr = [10,20,30,40,10];
var res = arr.reduce(function(pre,next, index, array){
return pre + next;
})
document.write(res+"<br/>");
document.write("<br/>");
结果:110
5、filter():过滤
arr.filter(function(item, index, array){
操作
})
其中item指当前遍历到的元素,index指当前遍历到的下标,array指当前遍历的数组。
例:
var arr = [10,20,30,40,10];
var newArr = arr.filter(function(item, index, array){
return item>20;
})
document.write(newArr+"<br/>");
document.write("<br/>");
结果:
30,40
6、some():判断return后面的条件是否成立,若成立返回true,否则返回false。若成立了,后面不再遍历。
例:
var arr = [10,20,30,40,10];
var res = arr.some(function(item, index, array){
return item > 30;
})
document.write(res+"<br/>");
document.write("<br/>");
结果:true
7、every():判断数组中是否每一项都符合return后的条件,若成立返回true,否则返回false。若有不成立的,返回false并停止遍历。
例:
var arr = [10,20,30,40,10];
var res = arr.every(function(item, index, array){
return item > 30;
})
document.write(res+"<br/>");
document.write("<br/>");
结果:false