//都接受3个参数,分别为:值、在数组中的位置、数组对象本身
var num = [2, 1, 5, 4, 2, 1, 6, 8, 19];
//every:若每一项都返回true,则返回true
var a= num.every(function(item,index,array){
return item>5
});
console.log(a);
// false
//filter:返回true项组成的数组
var b= num.filter(function(item,index,array){
return item>5
});
console.log(b);
// [6, 8, 19]
//forEach:没有返回值
var c= num.forEach(function(item,index,array){
return item>5
});
console.log(c);
// undefined
//map:返回返回值组成的数组
var d= num.map(function(item,index,array){
return '第'+index+'项:'+item;
});
console.log(d);
// ["第0项2", "第1项1", "第2项5", "第3项4", "第4项2", "第5项1", "第6项6", "第7项8", "第8项19"]
//some:若任一项返回true,则返回true
var e= num.some(function(item,index,array){
return item>5
});
console.log(e);
// true
// ===================归并方法
// reduce与reduceRight迭代数组的所有项,返回一个最终值
// reduce与reduceRright相同,一个从前开始迭代,一个从后开始迭代
// 传入四个参数:前一项、当前项、项的索引、数组本身
// 前一项prev为前面函数所执行的结果
var sum=num.reduce(function(prev,cur,index,array){
if(index==1){
return '第'+index+'项:'+cur+';';
}
return prev+'第'+index+'项:'+cur+';';
});
console.log(sum);
// 第1项:1;第2项:5;第3项:4;第4项:2;第5项:1;第6项:6;第7项:8;第8项:19;