一些ES5的操作数组的方法

在ES5规范中新增了不少操作数组的方法,特此罗列一下以备使用

1. forEach循环

有点类似jQuery的each循环

[12,23,36,4,5].forEach(function(v,k){

console.log(v)   得到元素值,    12,23,36,4,5

console.log(k)   得到元素下标 ,0,1,2,3,4

})

方便在不借助三方库的情况下遍历各类数组

2.filter过滤器

用于筛选元素

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用法基本一致,不同点在于所有操作都是从右向左进行,在某些确定优先级的情况下会有不同

上一篇:selenium启动Chrome时,加载用户配置文件


下一篇:Docker简介