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, 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 自定义数组排序相关推荐
- php的数组排列函数,PHP实现的自定义数组排序函数与排序类示例
本文实例讲述了PHP实现的自定义数组排序函数与排序类.分享给大家供大家参考,具体如下: /* * 二维数组自定义排序函数 * uasort($arr,function_name) * **/ $arr ...
- vue props使用typescript自定义类型
前言 Base: vue@3.2.33 + typescript@4.1.6 + npm@8.5.0 尝试解决将ts中自定义的interface/type,传vue的props属性的问题. 记录一下过 ...
- php 自定义数组排序函数,PHP自定义数组排序
/* * 二维数组自定义排序函数 * uasort($arr,function_name) * **/ $arr = array( array('a'=>1,'b'=>'c'), arra ...
- 使用 TypeScript 自定义装饰器给类的方法增添监听器 Listener
方法装饰器 语法 type MethodDecorator = <T>(target: Object,propertyKey: string | symbol,descriptor: Ty ...
- 使用 TypeScript 自定义装饰器给类的属性增添监听器 Listener
官网链接 语法 type PropertyDecorator =(target: Object, propertyKey: string | symbol) => void; target:直接 ...
- php usort strc,php中usort自定义排序如何使用
php中usort自定义排序如何使用 一.总结 一句话总结:多写一个规则函数,而这个函数的写法和普通函数一样,调用的时候规则函数用函数名的字符串. 1.用户自定义规则函数有哪三个? usort - 使 ...
- Vue.js + Vuex + TypeScript 实战项目开发与项目优化
技术栈: Vue.js + Vuex + TypeScript Todo List: 使用Vue CLI初始化项目 调整初始目录结构 删除初始化的默认文件(对于我们项目是多余的组件components ...
- python的手机官方下载地址,手机python下载安装教程
如何在手机上下载python 应用市场内搜索下载下载Python在您开始之前,在你的计算机将需要Python,但您可能不需要下载它. 首先检查(在命令行窗口输入python)有没有安装Python!如 ...
- PTA L2-039 清点代码库
上图转自新浪微博:"阿里代码库有几亿行代码,但其中有很多功能重复的代码,比如单单快排就被重写了几百遍.请设计一个程序,能够将代码库中所有功能重复的代码找出.各位大佬有啥想法,我当时就懵了,然 ...
最新文章
- java hashmap存取效率_HashMap为什么存取效率那么高?
- ubuntu16.04安装retext,第一行图标flie,edit,help没有,其它图标也不显示?
- redis的五种存储类型的具体用法
- Oracle 数据库 - 使用UEStudio修改dmp文件版本号,解决imp命令恢复的数据库与dmp本地文件版本号不匹配导致的导入失败问题,“ORACLE error 12547”问题处理
- UNITY把3D模型显示在UI层级上的思路
- C++设计模式之访问者模式
- C-指针02 2017/11/24
- 《Python Cookbook 3rd》笔记(2.1):使用多个界定符分割字符串
- .net core 2.0学习笔记(三):度量.net framework 迁移到.net core的工作量
- 【算法】欧拉图,欧拉回路,Eular Circuit,随机生成欧拉图,搜索欧拉回路
- c语言extern_C语言中#if,#if defined ,#ifdef,extern的用法描述
- ASP.NET MVC + ADO.NET EF 项目实战(三):引入jQuery
- Network 之五 TCP/IP 协议族、工作流程、(TCP、IP、MAC、VLAN)常用协议格式详解
- 如何在个人信用报告中添加“本人声明”?
- github上关于iOS的各种开源项目集合 (转载)
- RichEdit控件设置默认字体时只对中文起作用,对英文不起作用的解决办法
- Android 获取设备号
- go work 工作区
- 正在从你的计算机中删除office,手动删除Office 2013或Office 365即点即用安装的步骤...
- 田园综合体PPP项目规划方案(ppt)