熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

擴展js對象數組的OrderByAsc和OrderByDesc方法

2013-11-15 11:53:19  來源: JSP教程 

  看了一段時間關於js原型的知識js的擴展方法是基於原型的如ArrayprototypeXXXX就是給Array擴展XXX方法然後數組都能使用這個方法了

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

  代碼如下:

  ArrayprototypeOrderByAsc = function (func) {

  var m = {};

  for (var i = ; i < thislength; i++) {

  for (var k = ; k < thislength; k++) {

  if (func(this[i]) < func(this[k])) {

  m = this[k];

  this[k] = this[i];

  this[i] = m;

  }

  }

  }

  return this;

  }

  ArrayprototypeOrderByDesc = function (func) {

  var m = {};

  for (var i = ; i < thislength; i++) {

  for (var k = ; k < thislength; 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: } { name: ccc grade: } { name: bbb grade: }];

  var orderArr = arrOrderByDesc(function (a) {

  return agrade;

  });

  然後輸出一下看一下結果吧

  代碼如下:

  for (var i = ; i < orderArrlength; i++) {

  documentwrite(orderArr[i]name);

  }


From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19823.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.