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 中出现的顺序定义了子对象。我在执行 for 循环时遇到的问题是我让孩子们乱七八糟。我无法更改后端或 xsd,也无法将传输从 SOAP 更改为其他内容。有人可以建议一种在创建时或在我执行 for 循环以控制添加子项的顺序时对子项进行排序的方法吗?

谢谢你的时间

杰夫

4

1 回答 1

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
};
于 2013-05-29T15:19:40.307 回答