推送不按预期行事?

时间:2017-05-23 19:48:09

标签: javascript arrays object

在以下函数中,qid分别记录了1和2,但顺序等于1而不是{items: [{"product": 2, "quantity": 1}]}

function addToCart(id) {
        q = $('.shopify-buy__quantity').val();
        console.log("q: " + q)
        console.log("id: " + id)
        var order = {items: []}
        order = order.items.push({"product": id, "quantity": q})
        console.log('order: ' + order)
        order = JSON.stringify(order)
        storage.setItem('domehaOrder', order)
        updateCart()
}

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

Array.push()不返回拥有该数组的对象。它通过将新项添加到末尾来更改数组对象本身,然后返回数组的新长度。

只需调用它,不要将数组的长度分配给order

order.items.push({"product": id, "quantity": q})

order.items现在有一个项目。

答案 1 :(得分:0)

删除作业order = order.items.push({"product": id, "quantity": q})

只需order.items.push({"product": id, "quantity": q})