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

首頁 > 語言 > JavaScript > 正文

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

2024-05-06 15:47:26
字體:
來源:轉載
供稿:網友
js的擴展方法是基于原型的,如Array.prototype.XXXX就是給Array擴展XXX方法,然后數組都能使用這個方法了,在對象數組里面經常有根據屬性來進行排序的,升序,降序的,下面與大家分享自己寫的一個

看了一段時間關于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菜鳥,如果有什么想法啥的,直接留言,相互交流一下
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 白沙| 枣阳市| 巴中市| 额尔古纳市| 平邑县| 怀远县| 揭阳市| 永兴县| 湘潭县| 四川省| 长泰县| 张家川| 平度市| 荆州市| 楚雄市| 永兴县| 延寿县| 通化县| 天祝| 抚远县| 陵水| 鹤岗市| 余干县| 彭水| 昌都县| 建平县| 阿巴嘎旗| 克拉玛依市| 沧州市| 叙永县| 五寨县| 绥化市| 海阳市| 宁安市| 乌苏市| 新竹县| 汶川县| 乌拉特中旗| 都匀市| 漠河县| 乌拉特前旗|