【发布时间】:2019-03-11 03:15:10
【问题描述】:
我制作了一个简单的购物车。
首先,我有一组称为凭证的项目 - 例如:
"[{"id":"108","name":"Gourmet Tasting Menu for Two","price":"85.00","photo":"1102/KtOdtlg.jpg"},{"id":"109","name":"Sampler Menu for Two","price":"60.00","photo":"1102/YrLaHlg.jpg"},{"id":"127","name":"£100 Gift Voucher","price":"100.00","photo":"1102/qexxflg.jpg"}]"
和cart = [];
现在我有一个向 CART 数组添加项目的函数:
//with this function based on ID I find object into vouchers array and push that into CART array
function addItemToCart (id) {
qty = $('#qty').val();
var data = $.grep(vouchers, function(e){ return e.id == id; });
data = data[0];
data.voucher_id = id;
data.to = $('#to').val();
data.from = $('#from').val();
data.isGift = 0;
data.recipient_email = $('#recipient_email').val();
if (data.recipient_email != '') {
data.isGift = 1;
}
data.message = $('#message').val();
data.qty = qty;
data.total = qty*data.price;
cart.push(data);
};
这很好用,可以将 Item 添加到 CART 中,但也会更改凭证数组中的值。为什么?为什么将data.total 添加到凭证数组中的对象中...
我需要凭证数组具有不可更改的值...为什么当我以这种方式更改值时,它会将值绑定到凭证数组中。
【问题讨论】:
-
我有一个数组...你的意思是一个无效的字符串?
-
这是字符串化数组
-
您需要数组的深层副本
-
如何进行深拷贝?
标签: javascript jquery arrays object data-binding