javascriptで連想配列のソートは出来るでしょうか。
下記サイトを参照しましたが、連想配列ではundefindedになりました。
https://qiita.com/PianoScoreJP/items/f0ff7345229871039672
https://qiita.com/ShaderKid/items/ac790b1f2dc387477d4f
javascript
1 2 //ソート対象の連想配列 3 var aryParam = {}; 4 5 //データ配列 6 var ary_1 = {val1 : 2, val_2 : 3, str_1 : "ああああ", str_2 : "いいいい"}; 7 var ary_2 = {val1 : 4, val_2 : 4, str_1 : "うううう", str_2 : "ええええ"}; 8 var ary_3 = {val1 : 3, val_2 : 1, str_1 : "おおおお", str_2 : "かかかか"}; 9 var ary_4 = {val1 : 1, val_2 : 2, str_1 : "きききき", str_2 : "くくくく"}; 10 11 //配列に格納 12 aryParam["id_1"] = ary_1; 13 aryParam["id_2"] = ary_2; 14 aryParam["id_3"] = ary_3; 15 aryParam["id_4"] = ary_4; 16 17 //配列をソート 18 19 //val1でソート 20 // aryParam["id_4"] = ary_4; //val1:1 21 // aryParam["id_1"] = ary_1; //val1:2 22 // aryParam["id_3"] = ary_3; //val1:3 23 // aryParam["id_2"] = ary_2; //val1:4 24 25 //val2でソート 26 // aryParam["id_3"] = ary_3; //val2:1 27 // aryParam["id_4"] = ary_4; //val2:2 28 // aryParam["id_1"] = ary_1; //val2:3 29 // aryParam["id_2"] = ary_2; //val2:4 30 31 /* ソートというよりは、val1またはval2の順番で値を取得したい */ 32
追記
ご回答ありがとうございました。
今回は、連想配列のキーを任意順に取り出す関数を作成することに致しました。
javascript
1 2 //ソートされたid配列 3 var aryNewId = sortBy(aryParam, "val_1", "asc"); 4 5 //idループ 6 for(id in aryNewId){ 7 console.log("----"); 8 console.log(id); 9 console.log(aryParam[id]["val_1"]); 10 console.log(aryParam[id]["val_2"]); 11 console.log(aryParam[id]["str_1"]); 12 console.log(aryParam[id]["str_2"]); 13 } 14
回答4件
あなたの回答
tips
プレビュー