2013-06-07 2 views
2

새로운 allOrders [i]를 작성하는 것과 비슷한 데이터로 특정 allOrders [i]를 덮어 쓰고 싶습니다. 웬일인지 나는 무엇을 검색해야하는지 알 수 없다.배열의 개체 속성을 어떻게 덮어 쓰시겠습니까?

나는 allOrders 개체의 배열을 가지고 있습니다.

나는 BusinessCard 객체를 가지고 있습니다. 양식 필드를 가져 와서 직렬화() 한 다음 정규식으로 데이터를 정리 한 다음 배열로 푸시합니다.

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입니다.하지만 개체의 각 속성을 바꾸려면 새 함수를 작성해야합니다. 지금 날 전혀 도움이되지 않습니다 폼 입력에() 직렬화를 사용하기 때문에 내가 (사용하고

:.

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(); 

있다가이 작업을 수행 할 수있는 스마트 한 방법이 될 당신을 감사

.

EDIT : 제가 currentOrder getFormData = ('businessCardForm')를 사용할 수

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, "\":\"")) + '"}'); 
} 

의미로만; 다음 allOr ders [i] = currentOrder;

+2

'allOrders [I] = { "수량"값 1, "전체 이름" : value2, ...}' – mishik

+0

당신이 이것을 썼을 때 나는 내 JSON.parse를 생각해 냈다. 그게 당신이 말하는거야 (OP 편집). –

답변

5

당신이 사용하고있는 선택기로 모든 항목을 업데이트한다는 것이 이상한 것 같지만, 업데이트 된 주문 정보를 얻은 다음에는 루프를 통해 실행할 수 있습니다. 당신이 수 명령 개체의 각 속성과 값을하고 출력하기 것 같은

한, 당신의 출력에 따라 바로 수행

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; 
} 
+0

방금 ​​내 대답을 편집했습니다. 할당 할 필요가있는 getFormData에 함수를 추가하는 것을 잊어 버렸습니다. 제 편집 내용을 확인해 주시겠습니까? –

관련 문제