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, 4, 5, 8, 11]

复杂类型排序

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);

输出

[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
}]

TypeScript 自定义数组排序相关推荐

  1. php的数组排列函数,PHP实现的自定义数组排序函数与排序类示例

    本文实例讲述了PHP实现的自定义数组排序函数与排序类.分享给大家供大家参考,具体如下: /* * 二维数组自定义排序函数 * uasort($arr,function_name) * **/ $arr ...

  2. vue props使用typescript自定义类型

    前言 Base: vue@3.2.33 + typescript@4.1.6 + npm@8.5.0 尝试解决将ts中自定义的interface/type,传vue的props属性的问题. 记录一下过 ...

  3. php 自定义数组排序函数,PHP自定义数组排序

    /* * 二维数组自定义排序函数 * uasort($arr,function_name) * **/ $arr = array( array('a'=>1,'b'=>'c'), arra ...

  4. 使用 TypeScript 自定义装饰器给类的方法增添监听器 Listener

    方法装饰器 语法 type MethodDecorator = <T>(target: Object,propertyKey: string | symbol,descriptor: Ty ...

  5. 使用 TypeScript 自定义装饰器给类的属性增添监听器 Listener

    官网链接 语法 type PropertyDecorator =(target: Object, propertyKey: string | symbol) => void; target:直接 ...

  6. php usort strc,php中usort自定义排序如何使用

    php中usort自定义排序如何使用 一.总结 一句话总结:多写一个规则函数,而这个函数的写法和普通函数一样,调用的时候规则函数用函数名的字符串. 1.用户自定义规则函数有哪三个? usort - 使 ...

  7. Vue.js + Vuex + TypeScript 实战项目开发与项目优化

    技术栈: Vue.js + Vuex + TypeScript Todo List: 使用Vue CLI初始化项目 调整初始目录结构 删除初始化的默认文件(对于我们项目是多余的组件components ...

  8. python的手机官方下载地址,手机python下载安装教程

    如何在手机上下载python 应用市场内搜索下载下载Python在您开始之前,在你的计算机将需要Python,但您可能不需要下载它. 首先检查(在命令行窗口输入python)有没有安装Python!如 ...

  9. PTA L2-039 清点代码库

    上图转自新浪微博:"阿里代码库有几亿行代码,但其中有很多功能重复的代码,比如单单快排就被重写了几百遍.请设计一个程序,能够将代码库中所有功能重复的代码找出.各位大佬有啥想法,我当时就懵了,然 ...

最新文章

  1. java hashmap存取效率_HashMap为什么存取效率那么高?
  2. ubuntu16.04安装retext,第一行图标flie,edit,help没有,其它图标也不显示?
  3. redis的五种存储类型的具体用法
  4. Oracle 数据库 - 使用UEStudio修改dmp文件版本号,解决imp命令恢复的数据库与dmp本地文件版本号不匹配导致的导入失败问题,“ORACLE error 12547”问题处理
  5. UNITY把3D模型显示在UI层级上的思路
  6. C++设计模式之访问者模式
  7. C-指针02 2017/11/24
  8. 《Python Cookbook 3rd》笔记(2.1):使用多个界定符分割字符串
  9. .net core 2.0学习笔记(三):度量.net framework 迁移到.net core的工作量
  10. 【算法】欧拉图,欧拉回路,Eular Circuit,随机生成欧拉图,搜索欧拉回路
  11. c语言extern_C语言中#if,#if defined ,#ifdef,extern的用法描述
  12. ASP.NET MVC + ADO.NET EF 项目实战(三):引入jQuery
  13. Network 之五 TCP/IP 协议族、工作流程、(TCP、IP、MAC、VLAN)常用协议格式详解
  14. 如何在个人信用报告中添加“本人声明”?
  15. github上关于iOS的各种开源项目集合 (转载)
  16. RichEdit控件设置默认字体时只对中文起作用,对英文不起作用的解决办法
  17. Android 获取设备号
  18. go work 工作区
  19. 正在从你的计算机中删除office,手动删除Office 2013或Office 365即点即用安装的步骤...
  20. 田园综合体PPP项目规划方案(ppt)

热门文章

  1. UTC时间转换北京时间
  2. 【nodejs】如何从Windows中完全删除node.js
  3. 哔哩哔哩2022年Q2财报:社区活跃持续提升,超110万UP主获得收益
  4. 移动平台的产品设计世界
  5. vue+ svg实现水波纹
  6. QGIS中百度、高德与WGS84坐标系之间的转换
  7. 11 人利用 bug 获利 652 万:被判
  8. 贪心策略(一)(选择排序、分割平衡串、买卖股票、跳跃游戏)
  9. html5截取视频片段,【转】H5 VIDEO标签列表渲染用CANVAS截取视频画面做封面
  10. 人脸姿态估计(代码已跑通)