我想用数据覆盖某个 allOrders[i],类似于我创建一个新的。由于某种原因,我无法弄清楚要搜索什么。
我有一个对象数组 allOrders。
我有一个对象名片。我采用表单字段,对其进行序列化(),使用正则表达式清理数据,然后将它们推送到数组中。
allOrders.push(new BusinessCard(currentOrder.quantity, currentOrder.FullName, currentOrder.Title, currentOrder.CellNumber, currentOrder.OfficeNumber, currentOrder.FaxNumber, currentOrder.EmailAddress, currentOrder.Address, currentOrder.website, currentOrder.price));
我试过搜索覆盖数组中的现有对象属性等,但还没有弄清楚在这里做什么。
我最好的猜测是 allOrders[i].push——但在我看来,我必须编写一个新函数来替换对象中的每个属性。
现在我正在使用(因为在表单输入上使用 serialize() 根本没有帮助我:
allOrders[i].quantity = $('#bcQuantity').val();
allOrders[i].fullname = $('#fullName').val();
allOrders[i].title = $('#Title').val();
allOrders[i].cell = $('#CellNumber').val();
allOrders[i].office = $('#OfficeNumber').val();
allOrders[i].fax = $('#FaxNumber').val();
allOrders[i].email = $('#EmailAddress').val();
allOrders[i].address = $('#Address').val();
allOrders[i].website = $('#website').val();
allOrders[i].price = $('#bcCostBeforeCart').text();
必须有一个更聪明的方法来做到这一点。谢谢你。
编辑:
function getFormData(formId) {
var currentForm = '#' + formId;
var currentPrice = $('#bcCostBeforeCart').text();
var currentFormData = $(currentForm).serialize();
var currentFormDataFinal = currentFormData + '&price=' + currentPrice;
return JSON.parse('{"' + decodeURI(currentFormDataFinal.replace(/\+/g, " ").replace(/&/g, "\",\"").replace(/=/g, "\":\"")) + '"}');
}
意思是我可以使用 currentOrder = getFormData('businessCardForm'); 然后 allOrders[i] = currentOrder;