Vuejs购物车案例

Vuejs购物车案例

一、购物车案例

能够增加购物车中商品的数量和移除商品

1.1关键代码截图

1.2关于for循环

1.2.1 普通的for循环

let total=0;
for(let i=0;i<this.books.length;i++){
    total+=this.books[i].price*this.books[i].num;
}
return total;           

1.2.2 for(let i in this.books)

let total=0;
for(let i in this.books){
    const book=this.books[i];
    total+=book.price*book.num;
}
return total;

1.2.3 for(let item of this.books)

let total=0;
for(let item of this.books){
    total+=item.price*item.num;
}
return total;

1.2.4 高阶函数

return this.books.reduce(function(preValue,book){
      return preValue+book.price*book.num;
},0)

二、高阶函数

2.1 普通做法

const num=[10,20,30,100,200,40]
 //1.取出所有小于100的数字
let newNumber1=[];
for(let i of num){
    if(i<100){
        newNumber1.push(i);
    }
}
//2.将所有小于100的数字进行转化,全部乘以2
let newNumber2=[];
for(let i of newNumber1){
    newNumber2.push(i*2);
}
//3.将第二步的数据进行累加
let total;
for(let i of newNumber2){
    total+=i
}

2.2 高阶函数做法

//1.filter函数,返回一个Boolean值
//true:当返回true时,函数内部会自动将这次回调的n加入到新的数组中
//false:当返回false时,函数内部会过滤掉这次的n
let newNumber1=num.filter(function(n){
    return n<100;
})
//2.map函数
let newNumber2=newNumber1.map(function(n){
    return n*2;
})
//3.reduce函数,有两个参数,第一个参数为函数,第二个参数为初始值
newNumber2.reduce(function(preValue,n){
    return preValue+n;
},0)

2.3 高阶函数简写

let total=num.filter(function(n){
    return n<100;
}).map(function(n){
    return n*2;
}).reduce(function(preValue,n){
    return preValue+n;
},0)
let total=num.filter(n => n<100).map(n => n*2).reduce((preValue,n) => preValue+n )
posted @ 2020-09-18 19:20  Hyjjing  阅读(420)  评论(0编辑  收藏  举报