js reduce 学习

  <script>
        //  reduce  学习 1.四个参数
        //    prev上一次调用的返回值
        //    cur 当前处理的元素
        //    index 索引
        //    arr 原数组
        //    init 初始值
        // arr.reduce((prev,cur,index,arr)=>{},init)
        // ----------------------------
        // 判断对象中是否有某个参数    
        // let name = {
        //     'a': 1
        // }
        // console.log('a' in name) //  true
        // ------------------------ 判断出现的次数
        // var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice', 'Bob', 'Bob'];
        // var countedNames = names.reduce(function (allNames, name) {
        //     console.log(allNames, name);
        //     if (name in allNames) {
        //         allNames[name]++;
        //     }
        //     else {
        //         allNames[name] = 1;
        //     }
        //     console.log('[  ] >',allNames )
        //     return allNames;
        // }, names);
        // ---------------------去重
        // let arr = [1, 2, 1, 2, 3, 5, 4, 5, 3, 4, 4, 4, 4];
        // let result = arr.sort().reduce((init, current) => {
        //     console.log(init);
        //     if ( init[init.length - 1] !== current) {
        //         init.push(current);
        //     }
        //     console.log('[ init ] >', init)
        //     return init;
        // }, []);
        // console.log(result); // - [1,2,3,4,5]
        // ------------- */
        // var person = [
        //     {
        //         name: 'xiaoming',
        //         age: 18
        //     }, {
        //         name: 'xiaohong',
        //         age: 17
        //     }, {
        //         name: 'xiaogang',
        //         age: 17
        //     }
        // ];
        // function groupBy(objectArray, property) {
        //     return objectArray.reduce(function (acc, obj) {
        //         var key = obj[property]; //17  18
        //         if (!acc[key]) {
        //             acc[key] = [];
        //         }
        //         acc[key].push(obj);
        //         return acc;
        //     }, {});
        // }
        // var groupedPerson = groupBy(person, 'age');
        // console.log(groupedPerson);

        // ---------------------------
        // let people = [
        //     { name: 'Alice', age: 21 },
        //     { name: 'Max', age: 20 },
        //     { name: 'Jane', age: 20 }
        // ];
        // let result = people.reduce((a, b) => {
        //     a = a + b.age;
        //     return a;
        // }, 0)

        // console.log(result) // - 结果:61

    </script>
posted @ 2022-08-25 16:40  诡道也  阅读(15)  评论(0编辑  收藏  举报