循环取出类型:
//返回类型
public static get typeList() {
//空数组用来存放类型
let arr: any[] = [];
//for循环先判断数组是否为空,如果是空的可以push进去一个类型
for (let n: number = 0; n < this._guildAuctionList.length; n++) {
if (arr.length > 0) {
//类型是否一致
let val: boolean = false;
for (let m = 0; m < arr.length; m++) {
if (arr[m] == this._guildAuctionList[n].type) {
val = true
}
}
//不一致就push进去
if (!val) {
arr.push(this._guildAuctionList[n].type);
}
} else {
arr.push(this._guildAuctionList[n].type);
}
}
//最后返回排序
return arr.sort((a, b) => a - b)
}
js 数组的排序
arr.sort([this.mailSortFun])
/**
* 邮件排序
* @param info0
* @param info1
*/
private mailSortFun(info0: any, info1: any) {
if (info0.read && info1.read) {
return info1.createTime - info0.createTime;
}
if (info0.read) {
return 10000;
}
if (info1.read) {
return -10000;
}
return info1.createTime - info0.createTime;
}
如果传了 mailSortFun,那么数组会按照调用该函数的返回值排序。即 info0 和 info1 是两个将要被比较的元素:
如果 mailSortFun(info0, info1) return 的结果小于 0 ,那么 info0 会被排列到 info1 之前;
如果 mailSortFun(info0, info1) return 的结果等于 0 , info0 和 info1 的相对位置不变。
如果 mailSortFun(info0, info1) return 的结果大于 0 , info1 会被排列到 info0 之前。
var numbers = [4, 2, 5, 1, 3];
/*
一开始 4-2 =2 return大于0的数 b(较小的数)会往前 a(较大的数)会往后,
然后第二次 4 - 5 = -1 return小于0的数,则 a(较小的数)往前,b(教大的数)往后
后面一次按此把小的数往前排最后完成升序排序
*/
numbers.sort((a, b) => a - b);
console.log(numbers);
// [1, 2, 3, 4, 5]
// 遇到小的数(b) 减去 大的数(a) 不会变位置 b-a 小于0 (a,b)位置不变
// 遇到大的数(b) 减去 小的数(a) b-a 大于0 ,(a,b) 大的往前放,小往后,最后成降序排序
numbers.sort((a, b) => b - a);
console.log(numbers);
// [5, 4, 3, 2, 1]