Javascript 按int,然后按字母顺序对对象数组排序

Javascript 按int,然后按字母顺序对对象数组排序,javascript,arrays,sorting,Javascript,Arrays,Sorting,我有一个数组,里面有一些关于状态特征的各种信息,需要以几种方式修改它。首先我需要按区域排序,如果区域相同,则按名称排序。所以我使用parseInt来获取实际的int,而不是字符串,但是现在我迷路了。我怎样才能做到这一点?我还需要找到填充最多/填充最少的状态,并将其存储在变量中 (function() { 'use strict'; var states = [{ "name": "Alaska", "area": "663,268 sq mi", "population

我有一个数组,里面有一些关于状态特征的各种信息,需要以几种方式修改它。首先我需要按区域排序,如果区域相同,则按名称排序。所以我使用parseInt来获取实际的int,而不是字符串,但是现在我迷路了。我怎样才能做到这一点?我还需要找到填充最多/填充最少的状态,并将其存储在变量中

(function() {
'use strict';

var states = [{
    "name": "Alaska",
    "area": "663,268 sq mi",
    "population": 735132
}, {
    "name": "California",
    "area": "163,696 sq mi",
    "population": 38332521
}, {
    "name": "oregon",
    "area": "98,381 sq mi",
    "population": 3899353
}, {
    "name": "washington",
    "area": "71,300 sq mi",
    "population": 6971406
}];

var moddedStates = {};
for (var i = 0; i < states.length; i++) {
    var area = parseInt(states[i].area);

}
}());
(函数(){
"严格使用",;
变量状态=[{
“名称”:“阿拉斯加”,
“面积”:“663268平方米”,
“人口”:735132
}, {
“名称”:“加利福尼亚”,
“面积”:“163696平方米”,
“人口”:38332521
}, {
“名称”:“俄勒冈州”,
“面积”:“98381平方米”,
“人口”:3899353
}, {
“姓名”:“华盛顿”,
“面积”:“71300平方米”,
“人口”:6971406
}];
var moddedStates={};
对于(变量i=0;i
我相信这段代码可以满足您的所有需求。注意使用
replace
表示逗号,并使用
parseFloat
代替
parseInt
,以防某些大小包含小数点右侧的数字。(在比较美国各州的规模时,这可能不是一个问题,但却是一个好习惯……)

(函数(){
"严格使用",;
变量状态=[{
“名称”:“阿拉斯加”,
“面积”:“663268平方米”,
“人口”:735132
}, {
“名称”:“加利福尼亚”,
“面积”:“163696平方米”,
“人口”:38332521
}, {
“名称”:“俄勒冈州”,
“面积”:“98381平方米”,
“人口”:3899353
}, {
“姓名”:“华盛顿”,
“面积”:“71300平方米”,
“人口”:6971406
}];
var mostPopulated=null;
var leastPopulated=null;
states.sort(函数(a,b){
var aArea=parseFloat(a.area.replace(/,/g');
var bArea=parseFloat(b.area.replace(/,/g');
如果(aAreamostPopulated.population){
大多数人口=国家[i];
}
如果(!leastPopulated | | states[i]。人口}());编写自己的比较函数,如前所述。请注意,仅parseInt不足以获取状态的区域,因为它将在第一个逗号处停止。谢谢!这很有帮助。我将研究compare函数的返回值,以便更好地了解发生了什么。没问题。我通常发现MDN的文档对JavaScript、HTML和CSS非常有用。例子: