按int,然后按字母顺序对对象数组进行排序
Sort array of objects by int, then by alphabetical
我有一个数组,其中包含一些关于状态特征的各种信息,需要用几种方法对其进行修改。首先,如果区域相同,我需要按区域排序,然后按名称排序。所以我使用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);
}
}());
我相信这个片段可以实现您想要的一切。请注意使用replace
来说明逗号,并使用parseFloat
而不是parseInt
,以防某些大小包含小数点右侧的数字。(在比较美国各州的规模时,这可能不是一个问题,但这是一个很好的习惯…)
(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 mostPopulated = null;
var leastPopulated = null;
states.sort(function (a, b) {
var aArea = parseFloat(a.area.replace(/,/g, ''));
var bArea = parseFloat(b.area.replace(/,/g, ''));
if (aArea < bArea) return -1;
else if (bArea < aArea) return 1;
else if (a.name < b.name) return -1;
else if (b.name < a.name) return 1;
else return 0;
});
for (var i = 0, len = states.length; i < len; i++) {
if (!mostPopulated || states[i].population > mostPopulated.population) {
mostPopulated = states[i];
}
if (!leastPopulated || states[i].population < leastPopulated.population) {
leastPopulated = states[i];
}
}
console.log(states);
console.log(mostPopulated);
console.log(leastPopulated);
}());
相关文章:
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 在Javascript中转换对象数组
- 在JavaScript中通过索引从对象数组中获取值
- Backbone虹吸以获取对象数组
- 如何在DataTables 2.1中迭代对象数组
- Javascript-根据赋值顺序,按键合并对象数组
- 将事件附加到对象/数组
- jQuery$.inArray()总是返回-1和一个对象数组
- javascript处理一个对象数组以获得一个新的对象数组
- javascript在数组中获取对象数组中键的所有不同值
- 在对象数组中查找多个值的d3范围
- Undercore.js获取对象数组中键对象的值
- 在mongoose中使用正则表达式在对象数组中进行查询搜索
- 如何通过json对象数组为嵌套对象赋值
- 如何循环通过2个对象数组并通过匹配id进行合并
- 为对象数组创建列表项
- 如何使用javascript合并两个对象数组
- JSON到对象数组,并向每个对象添加项
- JavaScript:从对象数组中获取唯一值及其计数
- 按不同项目对对象数组进行排序