js数组方法—some,every,filter,map,reduce,reduceRight的理解

some()和every()

every和some是两个相似的迭代方法

区别在于:every()是数组中的每一项都为true,则最终迭代结果返回才true,否则false;

some()是数组中的只要有某一项为true,则最终迭代结果返回true,否则返回false;

            let arr=[1,2,3,4,5];  

            let result= arr.every((item)=>{

                 return item>2

                 });       

           console.log(result);   //false

            let   result1=arr.some((item)=>{

                return item>2

             });

              console.log(result1)   //true

filter()

filter()  过滤函数,从原函数中返回符合条件的项组成的新数组,如果没有return,则返回的是空数组;

   let arr = [1, 2, 3, 4];

    let result = arr.filter((item) => {

        return item > 2

    });

    console.log(result) //[3,4]

如果处理表达式是运算,将无效,返回元素组成员组成的数组(可以和map进行对比)

var res33 = arr.filter(function(item, index, array){
  return item * 2;
});
console.log('res33', res33); // 1, 12, 32, 2, 3, 44, 120, 3, 5

 

map()

返回和原数组长度一样的新数组,如果没有return,则返回长度一样的数组,并且每一项都是undefined

如果给定的处理函数的表达式是逻辑判断,它返回的是布尔值组成的数组

var res4 = arr.map(function(item, index, array){
  return item > 20;
});
console.log(res4); // false,false,true,false,false,true,true,false,false

如果给定处理函数的表达式是运算表达式,它返回的是每一项运算后的结果的数组

var res5 = arr.map(function(item, index, array){
  return item * 2;
});
console.log(res5); // 2,24,64,4,6,88,240,6,10

reduce()

对累加器和数组中的每个元素(从左到右)应用一个函数,将其减少为单个值。回调函数有两个必须的参数:

  • accumulator,累加器累加回调的返回值; 它是上一次调用回调时返回的累积值
  • currentValue,数组中正在处理的元素。
    let arr = [1, 2, 3, 4];

    let result = arr.reduce((prev, cur) => {

        return prev + cur;

    });

    console.log(result); //10
var arr=[0,1,2,3,4]
arr.reduce(function(preValue,curValue,index,array){
return preValue+ curValue;
},5);/*15*/

reduce 的最重要点就是利用累加器参数(accumulator)了,如果值操作第二个参数 item, 将会只处理数组最后一项,跟 for 循环中的 i 的效果一样

var arr = [1, 12, 32, 2, 3, 44, 120, 3, 5];
var res66 = arr.reduce(function(accumulator, item){
  return item * 2;
});
console.log('res66', res66); // 10

上面的代码试图只操作 item ,结果只是返回了数组最后一项的处理结果: 5 * 2 = 10

reduceRight()

reduceRight() 方法的功能和reduce()功能是一样的,不同的是reduceRight() 从数组的末尾向前将数组中的数组项做累加。

reduceRight() 首次调用回调函数callbackfn 时,preValue 和 curValue 可以是两个值之一。如果调用reduceRight()时提供了第二个参数,则preValue等于该参数,curValue等于数组中的最后一个值。如果没有提供,则preValue等于数组最后一个值,curValue等于数组中倒数第二个值。

var arr = [0, 1, 2, 3, 4];

arr.reduceRight(function(preValue, curValue, index, array) {
    console.log(preValue, curValue)
   return preValue + curValue; 
}); // 10

// 4 3
// 7 2
// 9 1
// 10 0


arr.reduceRight(function(preValue, curValue, index, array) {
   console.log(preValue, curValue)
   return preValue + curValue; 
}, 5) // 15

// 5 4
// 9 3
// 12 2
// 14 1
// 15 0


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript中的数组方法用于对数组进行各种操作和转换。下面是一些常见的数组方法: 1. push():将一个或多个元素添加到数组的末尾。 2. pop():移除并返回数组的最后一个元素。 3. shift():移除并返回数组的第一个元素。 4. unshift():将一个或多个元素添加到数组的开头。 5. concat():将两个或多个数组合并为一个新数组。 6. slice():返回选定数组的一部分,不修改原始数组。 7. splice():从数组中添加、删除或替换元素。 8. indexOf():返回指定元素在数组中的第一个匹配位置的索引。 9. lastIndexOf():返回指定元素在数组中最后一个匹配位置的索引。 10. forEach():对数组的每个元素执行提供的函数。 11. map():对数组的每个元素执行提供的函数,并返回新数组。 12. filter():根据指定的条件筛选数组元素,并返回一个新数组。 13. reduce():从左到右对数组的每个元素执行提供的函数,以将其减少为单个值。 14. reduceRight():从右到左对数组的每个元素执行提供的函数,以将其减少为单个值。 15. sort():对数组的元素进行排序。 16. reverse():颠倒数组的元素顺序。 17. join():将数组的所有元素连接成一个字符串。 18. includes():判断数组是否包含某个元素。 19. every():判断数组的每个元素是否都满足指定条件。 20. some():判断数组的某个元素是否满足指定条件。 以上是一些常见的数组方法。你可以根据需要选择适合的方法来操作和处理数组
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值