forEach(value,index,array)方法从头到尾遍历数组,为每个元素调用指定的函数.
用法:
//forEach 迭代(遍历)数组 var arr1 = [1,2,3] arr1.forEach(function(value,index,array) { //参数1:元素值 参数2:索引值 参数3:数组本身 console.log(‘数组元素‘ + value); console.log(‘数组元素的索引号‘ + index); console.log(‘数组本身‘ + array); }) // 例子 //计算数组的和 var arr2 = [1,2,3,4]; var sum = 0; arr2.forEach(function(value,index,array){ sum += value; }) console.log(sum); //数组每个元素加1 var arr3 = [1,2,3,4,5]; arr3.forEach(function(value,index,array){ arr3[index] = value + 1; }) console.log(arr3);
map()方法和forEach调用函数的方式一样,但是map有返回值,且生成的是一个新的数组
用法:
//原数组通过调用函数后得到的数值存入新的数组 // map()和forEach函数调用方式一样,但是map有返回值
var ary = [1,2,3];
var newary = ary.map(function(value){
filter()方法返回的数组元素是调用该方法数组的一个子集,传递的函数是用来逻辑判断的,返回true或false,如果元素满足条件,则返回到这个子集数组中
用法:
//filter 筛选数组 var arr = [12,66,4,88] var newArr = arr.filter(function(value,index,array){ return value >=20; }) console.log(newArr); //66,88 //返回的是满足所有条件的元素 生成一个数组
//注意:map和filter的区别 //当map中调用的函数体变为条件语句 value>=20时候 var arr2 = [12,66,4,88] var newArr2 = arr2.map(function(value,index,array){ return value >=20; }) console.log(newArr2); //false,true,false,true
every()方法对数组的逻辑判定:数组中所有元素满足所传递的函数,则返回true,否则返回false; (这里只要遇到满足false条件的元素就会终止循环)
用法:
var ary1 = [1,2,3,4,5] var flag = ary1.every(function(value){ return value>3; }) console.log(flag); //false 因为有1和2不满足大于3,所以返回false var ary2 = [1,2,3,4,5] var flag = ary2.every(function(value){ return value>0; }) console.log(flag); //true 元素都满足大于0,所以返回true
some()方法也是对数组的逻辑判定:数组中有一个元素满足所传递的函数,则返回true,(这里只要遇到满足true的就会终止循环);一个都不满足则返回false
var ary1 = [1,2,3,4,5] var flag = ary1.some(function(value){ return value>3; }) console.log(flag); //true 元素中4,5满足条件,所以返回true var ary2 = [1,2,3,4,5] var flag =ary2.some(function(value){ return value>6; }) console.log(flag); //false 元素中没有满足条件的,所以返回false
原文:https://www.cnblogs.com/joker-sqr/p/15043983.html