国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

擴展js對象數組的OrderByAsc和OrderByDesc方法實現思路

2019-11-20 22:42:42
字體:
來源:轉載
供稿:網友
看了一段時間關于js原型的知識,js的擴展方法是基于原型的,如Array.prototype.XXXX就是給Array擴展XXX方法,然后數組都能使用這個方法了。

在對象數組里面經常有根據屬性來進行排序的,升序,降序的,于是自己就想寫一個類似于C#里面的orderBy的方法,代碼如下:
復制代碼 代碼如下:

Array.prototype.OrderByAsc = function (func) {
var m = {};
for (var i = 0; i < this.length; i++) {
for (var k = 0; k < this.length; k++) {
if (func(this[i]) < func(this[k])) {
m = this[k];
this[k] = this[i];
this[i] = m;
}
}
}
return this;
}
Array.prototype.OrderByDesc = function (func) {
var m = {};
for (var i = 0; i < this.length; i++) {
for (var k = 0; k < this.length; k++) {
if (func(this[i]) > func(this[k])) {
m = this[k];
this[k] = this[i];
this[i] = m;
}
}
}
return this;
}

調用的方法如下:
復制代碼 代碼如下:

var arr = [{ name: 'aaa', grade: 20 }, { name: 'ccc', grade: 30 }, { name: 'bbb', grade: 40 }];
var orderArr = arr.OrderByDesc(function (a) {
return a.grade;
});

然后輸出一下,看一下結果吧:
復制代碼 代碼如下:

for (var i = 0; i < orderArr.length; i++) {
document.write(orderArr[i].name);
}

本人js菜鳥,如果有什么想法啥的,直接留言,相互交流一下
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 绍兴县| 渑池县| 疏附县| 江油市| 宾阳县| 龙井市| 景德镇市| 务川| 阳山县| 吉木萨尔县| 望奎县| 蒙阴县| 沙河市| 巫溪县| 沽源县| 沅陵县| 古蔺县| 监利县| 吉木乃县| 枣强县| 峨边| 尖扎县| 富源县| 怀宁县| 都匀市| 泗水县| 普兰店市| 台州市| 八宿县| 普宁市| 汝南县| 汽车| 资溪县| 麻栗坡县| 永靖县| 姚安县| 乌鲁木齐市| 武威市| 广丰县| 淅川县| 彭州市|