2013-01-14 96 views
1

可能重複:
How to sort an array of javascript objects?排序複雜的JavaScript陣列

我想我的一些舊的ActionScript 2.0代碼轉換爲JavaScript。一切工作正常,但我無法通過分數數字排序我的數組。

我在原來的ActionScript代碼我使用:

// Sort the capitals array so that the capitals with the lowest score will be at the top 
capitalsList.sortOn("score", Array.NUMERIC); 

這工作得很好,但在JavaScript中不起作用。我將它改爲:

capitalsList.sort("score", Array.NUMERIC); 

但是阿拉巴馬仍然輸出(康涅狄格應該輸出,因爲它的得分是-1)。我錯過了什麼?

我對JS腳本斌:http://jsbin.com/ibitez/1/edit

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<title>Untitled Document</title> 
<script> 
window.onload = function() { 

    function capitalsConstructor(capitalName, stateName, score) { 
     this.capitalName = capitalName; 
     this.stateName = stateName; 
     this.score = score; 
    } 

    // Create state capitals array 
    var capitalsList = new Array(); 

    // All 50 capitals are loaded into the array with a score of 0 
    // Sample limited to 10 capitals 
    capitalsList[0] = new capitalsConstructor("Montgomery", "Alabama", 0); 
    capitalsList[1] = new capitalsConstructor("Juneau", "Alaska", 0); 
    capitalsList[2] = new capitalsConstructor("Phoenix", "Arizona", 0); 
    capitalsList[3] = new capitalsConstructor("Little Rock", "Arkansas", 0); 
    capitalsList[4] = new capitalsConstructor("Sacramento", "California", 0); 
    capitalsList[5] = new capitalsConstructor("Denver", "Colorado", 0); 
    capitalsList[6] = new capitalsConstructor("Hartford", "Connecticut", -1); 
    capitalsList[7] = new capitalsConstructor("Dover", "Delaware", 0); 
    capitalsList[8] = new capitalsConstructor("Tallahassee", "Florida", 0); 
    capitalsList[9] = new capitalsConstructor("Atlanta", "Georgia", 0); 

    capitalsList.sort("score", Array.NUMERIC); 

    solution = capitalsList[0].stateName; 

    document.getElementById("divSolution").innerText = solution; 
} 
</script> 
</head> 

<body> 
<div id="divSolution"></div> 
</body> 
</html> 

回答