当前位置:   article > 正文

TypeScript 自定义数组排序_typescript 数组排序

typescript 数组排序

前言

对列表进行排序(根据自定义规则)。

代码

基本原理

.sort使用属性相减(a-b)获取一个基本类型(-1,0,1),如果小于0则将元素放到前面,如果大于0则放到后面,如果等于0则随缘(不同浏览器会有不同解析方式)。

.sort()采用返回数字的函数,而不是布尔值。
如果第一项较小,则需要返回负值; 如果它更大,则为正;如果相等,则为零。
—— 出处:https://cloud.tencent.com/developer/ask/54556

基本类型排序

//待排序数组
var numericArray:Array<number> = [2,3,4,4,1,5,8,11];
//排序完成的数组
var sorrtedArray:Array<number> = numericArray.sort((n1,n2)=> {
    return n1 - n2
}
//打印
console.log(sorrtedArray);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

输出

[1, 2, 3, 4, 4, 5, 8, 11] 
  • 1

复杂类型排序

class Hum{
    public name:string="";
    public age:number=0;
    constructor(name:string,age:number){
        this.name=name;
        this.age=age;
    }
}

let nike=new Hum("Nike",14);
let joine=new Hum("Joine",18);
let frank=new Hum("frank",12);
let baobo=new Hum("Baobo",13);
let wisk=new Hum("Wisk",16);

var humArray:Hum[] = [];
humArray.push(nike);
humArray.push(joine);
humArray.push(frank);
humArray.push(baobo);
humArray.push(wisk);
//排序完成的数组
var sorrtedArray:Array<Hum> = humArray.sort((n1,n2)=> {
        return n1.age - n2.age
    }
);
//打印
console.log(sorrtedArray);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

输出

[Hum: {
  "name": "frank",
  "age": 12
}, Hum: {
  "name": "Baobo",
  "age": 13
}, Hum: {
  "name": "Nike",
  "age": 14
}, Hum: {
  "name": "Wisk",
  "age": 16
}, Hum: {
  "name": "Joine",
  "age": 18
}] 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/152605
推荐阅读
  

闽ICP备14008679号