-PR-
  • すぐに回答を!
  • 質問No.6761375
解決
済み

【JavaScript配列のソート】2つのキーで

  • 閲覧数2947
  • ありがとう数5
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 100% (1/1)

JavaScriptのsort()を使用して次の並べ替えをしたいと思っています。

key1, key2, data, data
5/5 , 5/4 , リンゴ, 110
5/3 , 5/6 , バナナ, 130
5/7 , 5/2 , ミカン, 110
5/3 , 5/2 , イチゴ, 150

この配列をkey1を昇順でかつkey2も昇順とし並び変えたいのです。

key1, key2, data, data
5/3 , 5/2 , イチゴ, 150
5/3 , 5/6 , バナナ, 130
5/5 , 5/4 , リンゴ, 110
5/7 , 5/2 , ミカン, 110

str.sort();
これだとkey1のみでソートされてしまいますので、条件を複数指定したいのですがいい方法はないでしょうか?

結果はweb(テーブル等)に表示するのではなく、配列変数のままで獲得したいと思っています。
google apps のスプレッドシート内でスクリプトとして使用したいと思っています。

かなり調べたのですがどれも1項目(key1)のみの検索しかヒットしませんでした。

よろしくお願いします。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル11

ベストアンサー率 51% (166/325)

こういうこと?
https://ideone.com/8l2KI


function compareFunction(a, b) {
if (a[0] < b[0]) return -1;
if (a[0] > b[0]) return 1;
if (a[1] < b[1]) return -1;
if (a[1] > b[1]) return 1;
return 0;
}

var arr = [
["5/5", "5/4", "リンゴ", 110]
,["5/3", "5/6", "バナナ", 130]
,["5/7", "5/2", "ミカン", 110]
,["5/3", "5/2", "イチゴ", 150]
];

arr.sort(compareFunction);
お礼コメント
SilverWings001

お礼率 100% (1/1)

ありがとうございます。

すごい、すごい。現在希望通りの動きをしてくれています。
まさにこの通りにしたかったのです。

こうやって見てみると、結構わかりやすいですね。

後はこの配列の大きさがどこまでシステム的に耐えられてくれるかです。
本当にありがとうございました。
投稿日時 - 2011-05-25 03:01:22
-PR-
-PR-
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ