2013-05-29 30 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 
}; 
相关问题