js 根据字符串名称排序
直接上代码
let arr = ['abc','aaa','bbc','cae','eaa'];
arr.sort((a,b)=>{
if (a > b) return 1;
return -1;
})
console.log(arr);
/*
['aaa','abc','bbc','cae','eaa']
*/
/*
另一种写法
*/
arr.sort((a,b)=>{
return a.localeCompare(b);
})
小结
javascript
里面 array.sort()
函数是将数组重新排序,里面可以自定义排序规则,但需要返回值,1
为对掉位置,-1
为不变
数组中根据多个字段排序
var arr= [
{ 'sortNo': 2, 'sortNo2': 3},
{ 'sortNo': 1, 'sortNo2': 3},
{ 'sortNo': 5, 'sortNo2': 3},
{ 'sortNo': 6, 'sortNo2': 3},
{ 'sortNo': 7, 'sortNo2': 3},
{ 'sortNo': 3, 'sortNo2': 4},
{ 'sortNo': 3, 'sortNo2': 2},
{ 'sortNo': 3, 'sortNo2': 1},
{ 'sortNo': 3, 'sortNo2': 3},
{ 'sortNo': 8, 'sortNo2': 3},
{ 'sortNo': 4, 'sortNo2': 1},
{ 'sortNo': 4, 'sortNo2': 2}
];
arr.sort(function(a, b){
if (a.sortNo === b.sortNo) {
return b.sortNo2 - a.sortNo2;
} else {
return a.sortNo - b.sortNo;
}
});
console.log(arr);
//输出结果
//{ 'sortNo': 1, 'sortNo2': 3}
//{ 'sortNo': 2, 'sortNo2': 3}
//{ 'sortNo': 3, 'sortNo2': 4}
//{ 'sortNo': 3, 'sortNo2': 3}
//{ 'sortNo': 3, 'sortNo2': 2}
//{ 'sortNo': 3, 'sortNo2': 1}
//{ 'sortNo': 4, 'sortNo2': 2}
//{ 'sortNo': 4, 'sortNo2': 1}
//{ 'sortNo': 5, 'sortNo2': 3}
//{ 'sortNo': 6, 'sortNo2': 3}
//{ 'sortNo': 7, 'sortNo2': 3}
//{ 'sortNo': 8, 'sortNo2': 3}
> javascript 里面 `array.sort()` 函数是将数组重新排序,里面可以自定义排序规则,但需要返回值,`1` 为对掉位置,`-1` 为不变
其實還有一個 0, 與 `-1` 一樣不掉位, 但是意義不太一樣(表示兩值相等
也就是说,其实一个 `1` 就够了吧……