国产探花免费观看_亚洲丰满少妇自慰呻吟_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菜鳥,如果有什么想法啥的,直接留言,相互交流一下
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 城市| 江川县| 广汉市| 即墨市| 金寨县| 班戈县| 宣恩县| 哈尔滨市| 丁青县| 昆明市| 咸丰县| 东阿县| 牟定县| 镇雄县| 肥东县| 故城县| 西乌珠穆沁旗| 西吉县| 荆门市| 突泉县| 简阳市| 庐江县| 宝兴县| 轮台县| 阿勒泰市| 郎溪县| 镇赉县| 华坪县| 吐鲁番市| 秀山| 贵南县| 洛扎县| 澎湖县| 利辛县| 曲靖市| 门源| 朔州市| 南城县| 临颍县| 十堰市| 宁化县|