2013-05-29 2 views
0

jQuery를 사용하여 개체 리터럴 안에 자식 (변수, 배열 및 개체)을 저장하는 데 문제가 있습니다.은 개체 리터럴에서 자식의 순서를 강제하는 방법이 있습니까?

var LoginVO = LoginVO || {}; 

(함수 ($) {

LoginVO.username = ''; 
LoginVO.password = ''; 
LoginVO.loginDate = ''; 
LoginVO.userId = ''; 

LoginVO.authenticated = false; 
LoginVO.accountNonExpired = false; 
LoginVO.accountNonLocked = false; 
LoginVO.credentialsNonExpired = false; 
LoginVO.enabled = false; 
LoginVO.salt = ''; 

LoginVO.timeOfLastWebServiceCall = ''; 
LoginVO.timeOfLastRawHttpCall = ''; 

LoginVO.remoteAddress = ''; 
LoginVO.sessionId = ''; 

}) (jQuery를);

나는이 객체들을 모델 객체에 넣는다. 나중에 나는이 책을 읽거나 조작한다.

modelLocator.Login.sessionId = ;1234'; 

그런 다음이 어린이들을 업데이트해야한다. 그런 다음 XML 문자열로 어셈블해야 비누 봉투에있는 서버로 다시 전달됩니다. 그러나 Soap 메시지는 특정 순서로 있어야합니다. xsd에 나타나는 순서대로 객체 children을 정의했습니다. 내가 for 루프를 할 때 내가 가지고있는 문제는 아이들을 질서심에 빠지게한다. 백엔드 또는 xsd를 변경할 수 없으며 전송을 SOAP에서 다른 것으로 변경할 수 없습니다. 누군가가 창작 할 때 어린이를 주문하는 방법을 제안 할 수 있습니까? 아니면 for 루프를 사용하여 자녀가 추가되는 순서를 제어 할 수 있습니까? 시간에 대한

덕분에

제프

+4

개체 속성은 순서가 지정되어 있어야합니다. 순서가 중요하다면 원하는 순서대로 특성 이름을 가진 배열을 사용하고 그 순서를 반복하십시오. – Blazemonger

+0

개체 키에만 관련된 키가 있습니다 –

+0

어쨌든 개체 리터럴을 정확히 루핑하는 이유는 무엇입니까? 대신 키 배열을 저장하고 원하는 순서로 키 위로 반복합니다. 객체 대신 배열로 저장하지 않으면 시작합니다. –

답변

0

개체 속성은 정렬되지 않은 것으로 가정된다. 순서가 중요하다면 원하는 순서대로 특성 이름을 가진 배열을 사용하고 그 순서를 반복하십시오.

arr_desired_order = ["username","password","loginDate", /* etc. */ ]; 

for (var i=0, j=arr_desired_order.length; i<j; i++) { 
    var key = arr_desired_order[i], 
     val = LoginVO[key]; 
    // do something with key and val 
}; 
관련 문제