前端-reduce、some、every、map、forEach、find、filter、使用

1)reduce
1.reduce有四个参数。第一项是prev上一项 next下一项 index当前索引 arr原数组

<script>
    //1.reduce有四个参数。第一项是prev上一项  next下一项  index当前索引 arr原数组
    // var arr=[1,2,3,4];
    //  var h=arr.reduce((prev,next,indexs,arrs)=>{
    //      console.log(prev+next);
    //        return prev+next;
    //    });
    // console.log(h);//10

    //2.加入从后台调取数据  
    // var arr2=[
    //     {pice:30,const:2},
    //     {pice:40,const:2},
    //     {pice:20,const:1}
    // ];
    // var k=arr2.reduce((p,n)=>{
    //     console.log(p,n);
    //     return p+n.pice*n.const
    // },0);//添加0是因为每次返回都是这个值
    // console.log(k);

    //3.把多维数组变成一堆数组,扁平化数组 用reduce实例
    var arr3=[[1,2,3],[3,4],[5,6]];
    var m=arr3.reduce((p,n)=>{
       console.log(p,n);// p=[1, 2, 3] n=[3, 4]
       return p.concat(n);//concat数组的拼接
    });
    console.log(m);//[1,2,3,3,4,5,6]
</script>

2)some
2.some 查找,原数组不变,只要找到符合一项条件的就返回true,所有的都不符合就返回false(返回结果boolean类型)

<script>
    //some 查找,原数组不变,只要找到符合一项条件的就返回true,所有的都不符合就返回false(返回结果boolean类型)
    var ary=[1,2,3,4];
    let arr2=ary.some((item,index)=>{
        return item>2;
    });
    console.log(arr2);//true
</script>

3)every
3.every 查找,原数组不变,只要有一项不符合就返回false ,全部条件满足才返回true.

<script>
    //every 查找,原数组不变,只要有一项不符合就返回false ,全部条件满足才返回true.
    var arr=[1,2,3,4];
    let new1=arr.every((item,index)=>{
        return item>1;
    });
    console.log(new1);//false
</script>

4)map
4.map是映射 原数组不变 return什么就映射什么

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<ul id="ul"></ul>
<script>
    //map是映射 原数组不变 return什么就映射什么。
    var arr=[1,2,3,4];
    let k=arr.map((item,index)=>{
        console.log(item,index);//参数,下标
        return ul.innerHTML+=`<li>${item}</li>`;//es6的模板字符串 相当于字符串的拼接
    });
    console.log(k);
</script>
</body>
</html>

5)forEach
for循环是编程式,每一个步骤都展示出来
5.forEach是声明式,直接可拿来使用就可
例:(循环数组的,不支持return,没有返回值,遇到基本类型原数组不变,遇到引用类型原数组改变)
/*
基本类型:Undefined、Null、String、Number、Boolean
引用类型:object、Array、RegExp、Date、Function
特殊的基本包装类型(String、Number、Boolean)以及单体内置对象(Global、Math)。
*/

<script>
    //for循环是编程式,每一个步骤都展示出来
    //forEach是声明式,直接可拿来使用就可
    // 例子:(循环数组的,不支持return,没有返回值,遇到基本类型原数组不变,遇到引用类型原数组改变)
    /*
    基本类型:Undefined、Null、String、Number、Boolean
    引用类型:object、Array、RegExp、Date、Function
    特殊的基本包装类型(String、Number、Boolean)以及单体内置对象(Global、Math)。
    */
    var arr=[{n:1},{n:2},{n:3}];
    arr.forEach((item,index)=>{//去改变原数组
        console.log(item,index);//每一项,每一项下标
        item.n*=2;//直接操作原数组*2
    });
    console.log(arr);

</script>

6)find
6.find查找,原数组不变,只要找到符号条件的,就返回条件的第一项

<script>
    //find查找,原数组不变,只要找到符号条件的,就返回条件的第一项
    var arr=[1,2,3,4];
    let newArr=arr.find((item,index)=>{
        console.log(item,index);//每一项,每一项的下标
        return item>2;
    });
    console.log(newArr);//3

</script>

7)filter
7.filter过滤器 ,原数组不变,返回新数组,把过滤后返回true的每一项放到新数组中。

<script>
    //filter过滤器 ,原数组不变,返回新数组,把过滤后返回true的每一项放到新数组中。
    var arr=[1,2,3,4];
    var n=arr.filter((item,index)=>{
        console.log(item,index);
        return item!=2;
    });
    console.log(n);//1 3 4

</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值