一些ES5的操做数组的方法

在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用法基本一致,不一样点在于全部操做都是从右向左进行,在某些肯定优先级的状况下会有不一样

相关文章
相关标签/搜索