如何修改从mongoose查询返回的对象数组

时间:2017-09-05 12:15:44

标签: javascript arrays node.js mongoose

我正在使用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)打印出与其上方相同的结果。

0 个答案:

没有答案