高阶函数 filter map reduce

荒凉一梦 提交于 2019-12-05 06:55:12
const app=new Vue({    el:'#app',    data:{        books:[{            id:1,            name:"算法导论",            data: '2006-1',            price:39.00,            count:1        },{            id:2,            name:"算法导论",            data: '2006-1',            price:39.00,            count:1        },{            id:3,            name:"算法导论",            data: '2006-1',            price:39.00,            count:1        },{            id:4,            name:"算法导论",            data: '2006-1',            price:39.00,            count:1        }]    },    methods:{        getfinalprice(price){            return "$"+price.toFixed(2);        },        decreasement(index){            this.books[index].count--;        },        increasment(index){            this.books[index].count++;        },        remove(index){            this.books.splice(index,1);        }    },    filters:{        getp(price){            return "$"+price.toFixed(2);        }    },    computed:{        totalPrice(){            // let result=0;            //1普通for循环            // for (let i=0;i<this.books.length;i++){            //     result+=this.books[i].price*this.books[i].count;            // }            // return result;            //    2for(let i in this.books)            // for (let i in this.books){            //     console.log(i);//可以获得下标的索引值            // }        //    3直接拿到books的每一项        //     let totalprice=0;        //     for (let item of this.books){        //         totalprice+=item.price*item.count;        //     }        //     return totalprice;        //    4高阶函数            /*            * filter map  reduce            * filter中的回调函数有一个要求,必须返回一个布尔值;符合条件则会打印在一个新的数组中            * true:函数内部会自动将这次回调的n加入到新的数组中            * false:当返回false时,函数内部就会过滤掉这次的n            *            * */            // const nums=[122,2,3,43,53,6,7,8,];            // let newnum= nums.filter(function (n) {            //     return n<100;            // });            // console.log(newnum)        // //map函数的使用 特点直接进行计算;        //     let new2=nums.map(function (n) {        //         return n*2;        //     });        //     console.log(new2);        //  reduce函数的使用 作用:对数组中的所有内容进行汇总;        //     const nums=[122,2,3,43,53,6,7,8];        //     let num3=nums.reduce(function (prevalue,n){        //         return prevalue +n;        //     },0);        //     return num3;    //        使用高阶函数进行实现    //         const nums=[122,2,3,43,53,6,7,8];    //         let total=nums.filter(function (n) {    //             return n<100;    //         }).map(function (n) {    //             return n*2;    //         }).reduce(function (prevalue,n) {    //             return prevalue+n;    //         },0);    //         console.log(total);            return this.books.reduce(function (prevalue,book) {                 return prevalue+book.price*book.count ;            },0)        }}});
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!