2013-05-29 29 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的);

當被調用時,我將這些對象填充到模型對象中。所以後來我CA referewnce或在我需要更新這些孩子的應用有一定的時間處理這個孩子

modelLocator.Login.sessionId = ;1234'; 

然後。然後,我需要將它們組裝到一個XML字符串中,以傳回到肥皂信封中的服務器。但是,肥皂消息必須按照特定的順序。我已經按照出現在xsd中的順序定義了這些對象。我在做循環的時候遇到的問題讓我的孩子無法正常工作。我不能改變後端或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 
}; 
相關問題