我正在使用下面的代碼/數據來顯示每個House中我們最高收入學生的列表。如何修改此代碼以便我不必對對象進行排序?
數據
附件1:USER_INFO是對象
附件2的數組:USER_INFO是對象陣列如本
附件3:Database_Info是這樣
代碼
HPAnalysisObject.dispHPTotals = function(User_Info, Database_Info) {
// See attachments 1 and 2
console.log(User_Info);
// See attachment 3
console.log(Database_Info);
// "label" is just a text title, like "Eagles"
var html = '<h2>' + HPAnalysisObject.label + '</h2>' +
// "TotalPoints" is an integer figure
'<div id="total">' + Database_Info.TotalPoints + '</div>';
// create the table to display
html += '<table><tr><th class="name">Name</th><th class="points">Points</th></tr>';
// use "for, in" to access the value of the object key (which is the user's ID)
for (var id in Database_Info.UserDetails) {
html += '<tr>';
for (var i = 0; i < User_Info.length; i++) {
if (User_Info[i].id == id) {
// if the User_Info and Database_Info objects match up on the User's ID, add table cells to our html variable
html += '<td class="name">' + User_Info[i].firstname + ' ' + User_Info[i].surname + '</td><td class="points">' + Database_Info.UserDetails[id] + '</td>';
}
}
html += '</tr>';
}
html += '</table>';
$('div#display').html(html);
};
問題對象
奇怪的是,在Firefox,這些學生顯示在c正確的數字順序,因爲學生是從我的PHP腳本中收到的。
但是,在Google Chrome瀏覽器和Internet Explorer中,它們以看似隨機的順序顯示!
我的第一個想法是命令對象,但在這裏閱讀了幾個問題之後,似乎訂購對象並不是最佳實踐。
我可以重寫此代碼,以便顯示相同的表格數據 - 只需在每個瀏覽器上按正確的順序?
由於提前,
可能重複[不保證的JavaScript對象屬性單?(http://stackoverflow.com/questions/5525795/does-javascript-guarantee-object-property-order) –