JavaScriptの連想配列のsort(ソート).asortとarsort

Arrayを拡張して連想配列をkeyによってsortするasortと,逆順にsortするarsortを書いてみた.

Array.prototype.asort = function(key) {
    this.sort(function(a, b) {
        return (a[key] > b[key]) ? 1 : -1;
    });
}

Array.prototype.arsort = function(key) {
    this.sort(function(a, b) {
        return (a[key] < b[key]) ? 1 : -1;
    });
}


使い方

<script type="text/javascript">
//asort
Array.prototype.asort = function(key) {
    this.sort(function(a, b) {
        return (a[key] > b[key]) ? 1 : -1;
    });
}

//arsort
Array.prototype.arsort = function(key) {
    this.sort(function(a, b) {
        return (a[key] < b[key]) ? 1 : -1;
    });
}

//連想配列を格納する配列を作成
var hoge_ar = new Array();

//連想配列を作成してhoge_arに格納
for(var i = 0; i < 10; i++) {
    var ar = new Array();
    ar['id'] = parseInt(Math.random() * 100);
    ar['text'] = '';
    for(var j = 0; j <= i; j++) {
        ar['text'] += 't';
    }
    hoge_ar.push(ar);
}

//表示
for(var i = 0; i < hoge_ar.length; i++) {
    alert('id='+hoge_ar[i].id+'\ntext='+hoge_ar[i].text);
}

//idの昇順にsort
hoge_ar.asort('id');

alert('asort');

//表示
for(var i = 0; i < hoge_ar.length; i++) {
    alert('id='+hoge_ar[i].id+'\ntext='+hoge_ar[i].text);
}

//idの降順にsort
hoge_ar.arsort('id');

alert('arsort');

//表示
for(var i = 0; i < hoge_ar.length; i++) {
    alert('id='+hoge_ar[i].id+'\ntext='+hoge_ar[i].text);
}
</script>


配列の中身がobjectの時とかもソートできるように書きたい