例1:
将result属性里的对象按id大小,从小到大排序:
var obj = {
result:[
{id:1,name:'中国银行'},
{id:3,name:'北京银行'},
{id:2,name:'河北银行'},
{id:10,name:'保定银行'},
{id:7,name:'涞水银行'}
]
} ;
obj.result.sort((a,b)=>a.id-b.id);
console.log(obj);
输出:
例2:
将obj对象的属性名,按字典顺序排序:
var obj = {a:2,c:1,b:3};
var arr=Object.keys(obj).sort();
var result = {};
arr.map(m=>{
result[m] = obj[m];
});
console.log(result);
输出:
例3:
1、转变data数据的结构(要求如下):
let data = { "Afghanistan": "阿富汗", "China": "中国", "Angola": "安哥拉", "Canada": "加拿大", "Brazil": "巴西"};
//将data转换为下面的格式
{
A:[{en:'Afghanistan',cn:'阿富汗'},{en:'Angola',cn:'安哥拉'}],
C:[{en:'China',cn:'中国'},{en:'Canada',cn:'加拿大'}],
B:[{en:'Brazil',cn:'巴西'}]
}
代码:
let data = { "Afghanistan": "阿富汗", "China": "中国", "Angola": "安哥拉", "Canada": "加拿大", "Brazil": "巴西"};
let obj = {}; // 处理过后的数据对象
let temps = [];
for(let key in data) {
let index = key.charAt(0).toUpperCase(); // 根据key值的第一个字母分组,并且转换成大写
temps = obj[index] || []; // 如果map里面有这个key了,就取,没有就是空数组
temps.push({ en: key, cn: data[key] });
obj[index] = temps;
}
console.log(obj);
若想直接把输出结果改成下面这样:
let data = { "Afghanistan": "阿富汗", "China": "中国", "Angola": "安哥拉", "Canada": "加拿大", "Brazil": "巴西"};
//将data转换为下面的格式
{
A:[{en:'Afghanistan',cn:'阿富汗'},{en:'Angola',cn:'安哥拉'}],
B:[{en:'Brazil',cn:'巴西'}]
C:[{en:'China',cn:'中国'},{en:'Canada',cn:'加拿大'}],
}
代码:
var obj = {};
for(let key in data){
var index = key.charAt(0).toUpperCase();
if(obj.hasOwnProperty(index)){
obj[index].push({en:key,cn:data[key]});
}else{
obj[index] = [{en:key,cn:data[key]}];
}
}
console.log(obj);
2、将1得到的结果数据再转换为如下格式:
let list = [];
for(let gkey in obj) {
list.push({ gkey: gkey, countrys: map[gkey] })
}
console.log(list);
3、将2得到的结果在排序:
list = list.sort((li1, li2)=>
li1.gkey.charCodeAt(0) - li2.gkey.charCodeAt(0)
);
console.log(list);
输出: