美文网首页1024ES6JavaScript 进阶营
10.ES6数组map、reduce、filter、forEac

10.ES6数组map、reduce、filter、forEac

作者: 圆梦人生 | 来源:发表于2019-02-12 22:10 被阅读1次

ES6中数组扩展了map、reduce、filter、forEach等方法
1、map 一对一,可改变返回值
2、reduce 汇总, 索引下标从1开始
3、filter过滤 根据返回的true或者false保留或不保留数据
4、forEach 迭代

案例

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>数组方法扩展</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script>
        // 1、map
        // 一对一,可改变返回值
        let arr = [1, 2, 3, 4, 5]
        let result = arr.map((item, index)=>{
            //console.log(item, index);
            return item > 3 ? '哈哈' : '嘻嘻'
        })
        //  ["嘻嘻", "嘻嘻", "嘻嘻", "哈哈", "哈哈"]
        console.log(result);

        // 2、reduce 汇总
        // 索引下标从1开始
        // 计算arr相加
        // 每次返回的tmp 中间值, item当前值, index索引
        let sum = arr.reduce((tmp, item, index)=>{
            // console.log(tmp, item, index);
            return tmp + item
        })
        // 汇总:15
        console.log(sum);
        // 计算arr平均
        // let avg = arr.reduce((tmp, item, index)=> index === arr.length - 1 ? (tmp + item) / arr.length : (tmp + item))
        let avg = arr.reduce((tmp, item, index)=>{
            return  index === arr.length - 1 ? (tmp + item) / arr.length : (tmp + item)
        })
        // 平均值:3
        console.log(avg);
        
        // 3、filter过滤
        // 根据返回的true或者false保留或不保留数据
        let result2 = arr.filter((item, index)=>{
            // console.log(item, index);
           return  item > 3 ? true : false
        })
        // [4, 5]
        console.log(result2);
        
        //4、forEach 迭代
        arr.forEach((item, index)=>{
            console.log(item, index);
        })
    </script>
</head>
<body>
    
</body>
</html>

相关文章

网友评论

    本文标题:10.ES6数组map、reduce、filter、forEac

    本文链接:https://www.haomeiwen.com/subject/ovsleqtx.html