前端在处理后台返回的数据的过程中,排序应该是一个经常遇见的问题
现在有一个数组是
arr = [1,2,4,5,3,2,1]
- 对于这样的一个最常见的数组,我们通常也会使用最简单的办法:
let arr = [1,2,4,5,3,2,1];
arr.sort((a,b) => {
return a-b; //从小到大
//return b-a; 从大到小
})
现在数组是这样的
arr = ['a','c','s','e','d','b']
- 如果数组是这样的,要求是按照字母的顺序排序,实现方法也很简单:
let arr = ['a','c','s','e','d','b'];
arr.sort();
现在有一个json
json = { '场数':29, '得分':112.5, '两分(率)':0.57,'三分(率)':0.37,'罚球(率)':0.80,'篮板':47.9,'盖帽':3.9,'抢断':9.6,'助攻':21.3,'犯规':21.3,'失误':12.6,'胜负':'24/4'}
- 我们还有另外一个数组是这样的
brr = [{ title: '场数' }, { title: '得分' }, { title: '两分(率)' }, { title: '三分(率)' }, { title: '罚球(率)' }, { title: '篮板' }, { title: '盖帽' }, { title: '抢断' }, { title: '助攻' }, { title: '犯规' }, { title: '失误' }, { title: '胜负' }]
- 现在的要求是
arr
要按照brr
中的title属性的顺序进行排序 - 代码如下
function(brr,json){ //传入两个参数(已有顺序的数组,准备排序的json)
let arr = [];
let newJson = {}; //定义一个新的{}
brr.map(item => {
arr.push(item.title);
})
arr.map(item => {
const key = item;
newJson[key] = json[key];
})
return newJson; //返回已经排序好的json
}
现在有一个数组
arr = [{name:'jack',age:'22',sort:3},{name:'xiaohong',age:'11',sort:2},{name:'lily',age:'42',sort:8},{name:'lisa',age:'32',sort:5}]
- 现在我们要根据现有数组中json的sort属性进行排序(从小到大/从大到小)
- 代码如下
function sortArr(a,b){
return a.sort-b.sort;
}
arr.sort(sortArr)