Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何覆盖数组中的对象属性?_Javascript_Oop_Object - Fatal编程技术网

Javascript 如何覆盖数组中的对象属性?

Javascript 如何覆盖数组中的对象属性?,javascript,oop,object,Javascript,Oop,Object,我想用数据覆盖某个Allorder[I],类似于创建新的Allorder[I]的方式。由于某种原因,我不知道该搜索什么 我有一个数组的对象Allorder 我有一张实物名片。我获取表单字段,序列化()它们,用正则表达式清理数据,然后将它们推送到数组中 allOrders.push(new BusinessCard(currentOrder.quantity, currentOrder.FullName, currentOrder.Title, currentOrder.CellNumber, c

我想用数据覆盖某个Allorder[I],类似于创建新的Allorder[I]的方式。由于某种原因,我不知道该搜索什么

我有一个数组的对象Allorder

我有一张实物名片。我获取表单字段,序列化()它们,用正则表达式清理数据,然后将它们推送到数组中

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();
一定有更聪明的方法,谢谢

编辑:

意思是我可以用 currentOrder=getFormData('businessCardForm'); 然后
allOrders[i]=currentOrder;

似乎很奇怪,您将使用正在使用的选择器更新所有项目,但我将结束获取更新的订单信息,然后,您可以通过循环运行

根据您的输出,只要它输出order对象的相应属性和值,您就可以执行以下操作:

for(int i =0; i < allOrders.length; i++){
   var currentFormId = '' // update this for each iteration.    
   allOrders[i] = getFormData(currentFormId);
} 




allOrders[i] = getUpdatedOrder();

function getUpdatedOrder() {
   var order = {};
   order.quantity = $('#bcQuantity').val();
   order.fullname = $('#fullName').val();
   order.title = $('#Title').val();
   order.cell = $('#CellNumber').val();
   order.office = $('#OfficeNumber').val();
   order.fax = $('#FaxNumber').val();
   order.email = $('#EmailAddress').val();
   order.address = $('#Address').val();
   order.website = $('#website').val();
   order.price = $('#bcCostBeforeCart').text();
   return order;
}
for(int i=0;i
allOrders[i]={“quantity”:value1,“fullname”:value2,…}
当你写这篇文章时,我想到了我的JSON.parse,它就是这么写的。这就是你说的(请参见我的编辑操作)我刚刚编辑了我的答案。我忘了将我的函数添加到需要分配的getFormData中。请检查我的编辑。
for(int i =0; i < allOrders.length; i++){
   var currentFormId = '' // update this for each iteration.    
   allOrders[i] = getFormData(currentFormId);
} 




allOrders[i] = getUpdatedOrder();

function getUpdatedOrder() {
   var order = {};
   order.quantity = $('#bcQuantity').val();
   order.fullname = $('#fullName').val();
   order.title = $('#Title').val();
   order.cell = $('#CellNumber').val();
   order.office = $('#OfficeNumber').val();
   order.fax = $('#FaxNumber').val();
   order.email = $('#EmailAddress').val();
   order.address = $('#Address').val();
   order.website = $('#website').val();
   order.price = $('#bcCostBeforeCart').text();
   return order;
}