本文章内容均参考《JavaScript高级程序设计第三版》
今天在看JavaScript书籍的时候,看到之前没有了解过的JavaScript中Array的几个内置函数对象,为了之后再开发工作中能方便查询,故编写此随笔。直接贴代码,
function arrayEffect(){
var numbers = [1,2,3,4,5,6,7,8,9,10]; //------------------------------------ 支持浏览器版本 IE9+,Firfox 2+ ,Safair 3+,Opera 9.5+,Chrome ------------------------------------ /** every迭代方法,对数组中的每一项运行给定函数,只有该函数对没一项的返回值都为true,则返回true **/
var ever = numbers.every(function (item,index,array){
return item - 1 == index;
}); /** filter方法,股民思议,类似于过滤器,返回true项组成的一个数组 **/
var filter = numbers.filter(function(ele,index,array){
return ele % 3 == 0;
}); /** 对数组中的每一项给定函数,返回每次函数调用的结果组成的数组 */
var map = numbers.map(function(ele ,index,array){
return ele * ele;
}); /** 对数组中的每一项给定函数,如果该函数的任意一项返回true,则返回true,否则返回false */
var some = numbers.some(function(ele,index,array){
return ele % 2 == 0;
});
//------------------------------------------------------------------------------------------------------------------------------------- /** 接收两个参数,在每一项上调用的函数和作为规避基础的初始值(第一个项为可选项)
* 调用函数有四个参数,前一个值,当前值,当前元素数组位置,和数组对象
* tips : 执行函数中的每一个向的返回值,都会当做下一项执行函数的第一个参数
* 如第一次执行回调,prev为1,cur为2。第二次prev为3(1 + 2的结果),cur是3(第三项)。直到最后一个数组元素
* 支持浏览器版本 IE9+ , Firfox 3+ , Safair 4+,Opera 10.5,Chrome
*/
var reduce = numbers.reduce(function(prev,cur,index,array){ return prev + cur;
},34); /** 接收两个参数,在每一项上调用的函数和作为规避基础的初始值(第一个项为可选项)
* 调用函数有四个参数,前一个值,当前值,当前元素数组位置,和数组对象(与reduce互为反向操作,即总最后一项开始往前面便利元素,除此之外没有任何不同)
* 支持浏览器版本 IE9+ , Firfox 3+ , Safair 4+,Opera 10.5,Chrome
*/
var reduceRight = numbers.reduceRight(function (prev,cur,index,array){ return prev + cur;
}); alert("The every method of array : " + ever);
alert("The filter method of array : " + filter);
alert("The map method of array : " + map);
alert("The some method of array : " + some);
alert("The reduce method of array :" + reduce);
alert("The reduceRight method of array :" + reduceRight); }