javascriptの連想配列のソートについて質問です。

以下のコードのようにしてみましたがなぜかソートできません。
何が間違っているのでしょうか?
どうか教えてください。

list[0] = new Array({'id':0,'data':190});
list[1] = new Array({'id':1,'data':0});
list[2] = new Array({'id':2,'data':190});

var key = 'data';
list.sort (function (b1, b2) { return b1.key > b2.key ? 1 : -1; } );

//結果
list[ [id=0,data=190] , [id=1,data=0] , [id=2,data=190] ]

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2011/08/31 01:26:11
  • 終了:2011/08/31 01:55:16

ベストアンサー

id:susie-t No.2

susie-t回答回数99ベストアンサー獲得回数182011/08/31 01:50:53

あと

list[0] = new Array({'id':0,'data':190});

list[0] = {'id':0,'data':190};

でいいかと。

id:w1102a

ありがとうございます!

おかげ様で無事ソートできました! new Arrayが原因だったのですね。

2011/08/31 01:54:29

その他の回答(1件)

id:a-kuma3 No.1

a-kuma3回答回数4487ベストアンサー獲得回数18562011/08/31 01:45:16

var key = 'data';

list.sort (function (b1, b2) { return b1.key > b2.key ? 1 : -1; } );

が、

var key = 'data';
list.sort (function (b1, b2) { return b1[key] > b2[key] ? 1 : -1; } );

かな?

id:w1102a

ありがとうございます!

susie-tさんの回答も合わせて無事にソートできました!

2011/08/31 01:53:59
id:susie-t No.2

susie-t回答回数99ベストアンサー獲得回数182011/08/31 01:50:53ここでベストアンサー

あと

list[0] = new Array({'id':0,'data':190});

list[0] = {'id':0,'data':190};

でいいかと。

id:w1102a

ありがとうございます!

おかげ様で無事ソートできました! new Arrayが原因だったのですね。

2011/08/31 01:54:29

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません