【发布时间】:2016-10-05 03:10:39
【问题描述】:
每次我获得新价格时,都会发生以下情况: totalprice = totalprice + 购物车[i] 例如,如果 totalprice 以前是 500,而新价格是 800,则 totalprice 应该是 (500 + 800) 而当前是 (500 + 500 + 800 )。为什么会这样?
exports.add = function(req, res) {
var cart = req.body.cart;
console.log('frome node..adding checkcart.js');
console.log("Session Initialized!!");
for(var i = 0 ; i < cart.length ; i++) {
totalprice = cart[i].price + totalprice;
console.log('Current Price: '+cart[i].price);
}
req.session.cart = cart;
console.log(cart);
console.log('total: ' + totalprice);
//req.session.totalprice = totalprice;
json_responses = {
"totalprice": req.session.totalprice
}
res.send(json_responses);
};
【问题讨论】:
-
添加控制台日志为例
-
frome node..adding checkcart.js [ { uid: 'lenvyga', product: 'Lenovo Yoga', price: 800 } ] 会话初始化!!当前价格:800 总计:800 POST /addtocart 200 117.127 ms - 2 frome node..adding checkcart.js [ { uid: 'lenvyga', product: 'Lenovo Yoga', price: 800 }, { uid: 'macbpr',产品:'MacBook Pro',价格:1200 } ] 会话初始化!!当前价格:800 当前价格:1200 总计:2800
-
问题出在哪里?首先,总价格为 0,添加 800 后变为 800,如控制台日志中所述。然后再添加两个,(1) 800 和 (2) 1200。所以它需要总价格(当前为 800)并添加价格(1)和(2)。这使它成为 800+1200+800 应该是 2800。也就是说,正是你得到的(根据控制台日志)。
-
问题是我将项目推入一个数组,因此我不是第二次推两个项目,而是只推一个。但它需要两者的值。
-
嘿杰克,如果下面的答案解决了您的问题,请用绿色 V(复选标记)标记它,以通知其他阅读此问题的用户正确答案。如果没有,请告诉我原因。