在ES5规范中新增了很多操做数组的方法,特此罗列一下以备使用数组
1. forEach循环函数
有点相似jQuery的each循环io
[12,23,36,4,5].forEach(function(v,k){console
console.log(v) 获得元素值, 12,23,36,4,5function
console.log(k) 获得元素下标 ,0,1,2,3,4循环
})遍历
方便在不借助三方库的状况下遍历各种数组方法
2.filter过滤器filter
用于筛选元素co
var arr = [12,23,36,4,5].filter(function(x){
return x>10; 此时大于10的元素会经过筛选并存放到一个新的数组,函数结束后返回该数组
});
console.log(arr) 获得[12,23,36]
3.every匹配
和上面filter的格式类似,可是返回的是一个bool值
若是数组内全部元素均经过筛选,则返回true,不然返回false
4.some匹配
和every匹配相对,只要有一个元素经过了筛选就返回true,一个都没就返回false
5.reduce组合
组合数组内的元素,进行相关操做
例如,数组求和
var sum = [12,23,36,4,5].reduce(function(x,y){
return x+y;
},0);
最终sum获得数组内的总和
主要接收一个函数来return 相应的组合操做,而后能够设置返回值的初始值,此处sum初始值为0
再来两个例子更加有助于理解
数组求积
var ji = [12,23,36,4,5].reduce(function(x,y){
return x*y;
},1);
显然求积,默认初始值就是1而不是0了
求最大值
var max = [12,23,36,4,5].reduce(function(x,y){
return (x>y)?x:y;
});
求最大值不须要初始值,返回的是通过两两比较后获得的最大值
6.reduceRight
和reduce用法基本一致,不一样点在于全部操做都是从右向左进行,在某些肯定优先级的状况下会有不一样