Sorting an array of objects

Armin Bartsch, Donnerstag, 14. Oktober 2010

Array mit Objectinhalt sortiren.

Erweiterung von jquery um ein mit Objekten gefüllten Array gezielt nach dem Objektinhalt sotieren zu lassen. Idee und Source von www.javascriptkit.com/javatutors/arraysort2.shtml

$.extend({ /** * Sortieren eines Array nach dem Objectinhalt * * @param Array Array gefüllt mit Objecten * @param String Feldname nach dem sortiert werden soll * @param String Sortiermethode (date, string, int) * @return Array Sortierter Array */ iw_sort : function (objA, field, sort) { if (sort == 'date') { objA.sort(function(a, b){ var dateA=new Date(a[field]), dateB=new Date(b[field]) return dateA-dateB //sort by date ascending }) } if (sort == 'int') { objA.sort(function(a, b){ return a[field]-b[field] }) } if (sort == 'string') { objA.sort(function(a, b){ var nameA=a[field].toLowerCase(), nameB=b[field].toLowerCase() if (nameA < nameB) //sort string ascending return -1 if (nameA > nameB) return 1 return 0 //default return value (no sorting) }) } return objA; } })
  1. $.extend({
  2.   /**
  3.    * Sortieren eines Array nach dem Objectinhalt
  4.    *
  5.    * @param Array    Array gefüllt mit Objecten
  6.    * @param String  Feldname nach dem sortiert werden soll
  7.    * @param String  Sortiermethode (date, string, int)
  8.    * @return  Array  Sortierter Array
  9.    */
  10.   iw_sort : function (objA, field, sort) {
  11.     if (sort == 'date') {
  12.       objA.sort(function(a, b){
  13.          var dateA=new Date(a[field]), dateB=new Date(b[field])
  14.          return dateA-dateB //sort by date ascending
  15.         })
  16.     }
  17.     if (sort == 'int') {
  18.       objA.sort(function(a, b){
  19.          return a[field]-b[field]
  20.         })
  21.     }
  22.     if (sort == 'string') {
  23.       objA.sort(function(a, b){
  24.         var nameA=a[field].toLowerCase(), nameB=b[field].toLowerCase()
  25.         if (nameA < nameB) //sort string ascending
  26.           return -1
  27.         if (nameA > nameB)
  28.           return 1
  29.         return 0 //default return value (no sorting)
  30.       })
  31.     }
  32.     return objA;
  33.   }
  34. })

Entwicklungsumgebung

TYPO Version:
4.3.1

Sponsored by:

ideenwerft webhosting
ideenwerft caretaker