我正在使用nodeJS并且在我的生活中我不知道为什么我的数组没有被修改。
以下是我的代码
router.get('/cart', (req, res) => {
let cart = req.session.cart;
let cartKeys = Object.keys(cart);
Product.find({_id: {$in:cartKeys}}, (err, productResults) => {
if(err)throw err;
let newProductsArray = [];
for(let index in productResults){
let curProduct = productResults[index];
curProduct['quantity'] = cart[curProduct._id];
console.log(cart[curProduct._id]) //prints out quantity e.g. 4
console.log(curProduct.quantity) //prints out same quantity as above
console.log(curProduct) // Doesn't have field 'quantity'
newProductsArray.push(curProduct)
}
console.log(newProductsArray) //none of the products have 'quantity'
res.render('./shop/cart/cart' , {
js:['/shop/cart/cart.js'],
css:['/shop/cart/cart.css']
})
});
});
其他一切都很有效。我可以访问该路线,我找到了我应该找到的所有三种产品,并且它在productResults
中存在。问题是console.log(curProduct)
和console.log(newProductsArray)
(我尝试制作新数组,因为我无法修改productResults
),它们都没有字段quantity
。更奇怪的是console.log(cart[curProduct._id])
打印数量就好了。我究竟做错了什么?我很确定我一直在用这种方式做类似的工作。
更奇怪的是,console.log(curProduct.quantity)
打印出与其上方相同的结果。