使用array.some()

时间:2017-11-26 20:57:44

标签: javascript

我正在构建一个电子商务应用程序。当添加到购物车路线点(/ cart / add /:id)时,我会检查一个条件,如果产品已经存在于购物车中或者没有使用array.some()

 var hi = req.session.user.cart.some(function(element,index,array){

            return element.productId === req.params.id ;
        })

        console.log("hi' value "+hi);
        if(hi === true){
            var myResponse = responseGenerator.generate(false,"I already 
             exists",200,false);
               res.send(myResponse);
        }
        else{
           //proceed to next step and push the product to cart array
        }

一切顺利并打印“我已经存在”的消息,直到我从购物车中删除产品。从购物车中取出产品后,如果我再次点击添加到购物车路线,则会打印上述消息,而不是将产品添加到购物车。我不确定我是否正确使用array.some()

我从购物车代码中移除

  cartRouter.post('/delete/:id',auth.checkLogin,function(req,res){

    //FIND USER AND PULL/REMOVE PRODUCT FROM CART 

    userModel.update({"_id":req.session.user._id},{$pull:{cart:
                {"productId":req.params.id}}},function(err,user){
        if(err){
                var myResponse = 
                 responseGenerator.generate(true,err,500,null);
                res.send(myResponse);
        }
        else{
                ourInfo.productDel = true;

                var myResponse = responseGenerator.generate(false,"Deleted 
                   successfully",200,ourInfo);
                res.send(myResponse);
         }
     })


 });

我确信这些产品的长度为0时会从购物车中移除。但不知何故,我从购物车中取出后无法添加相同的产品。

0 个答案:

没有答案