無い場合は、おすすめコードを教えてください。
(ソートではありません、順序を逆にしたいのです)
(phpでいうarray_reverseと同じ結果を求めています)
hoge['aaa'] = 'あいうえお';
hoge['bbb'] = 'かきくけこ';
hoge['ccc'] = 'さしすせそ';
よろしくお願いします。
Array#reverse() は、連想配列 (文字列をキーにした配列) には効かないみたいです。
なので、こんな感じではどうでしょう。
function dump_array(a) { console.log("--------------------"); for (var i in a) { console.log(i + " : " + a[i]); } } function reverse_array_ex(a) { var key = []; for (var i in a) { key.push(i); } key.reverse(); var ret = []; for (var i in key) { ret[key[i]] = a[key[i]]; } return ret; } var hoge = []; hoge['aaa'] = 'あいうえお'; hoge['bbb'] = 'かきくけこ'; hoge['ccc'] = 'さしすせそ'; hoge['ddd'] = 'たちつてと'; hoge['eee'] = 'なにぬねの'; dump_array(hoge); // Array#reverse() は、連想配列には効かない hoge.reverse(); dump_array(hoge); // key を逆順に並べなおして、新たに連想配列を作り直す hoge = reverse_array_ex(hoge); dump_array(hoge);
えーと、
hoge.reserve();
で、いいのかな。
(簡単すぎるから、なにか条件を忘れているかな?)
やはりそうなのですね。
しかしそのタイプミスでいくつかのサイトがあるのも不思議ですね ーー;
はじめて reserve() を見たときは、
まじめに、これは連想配列用なのかな?と信じて試しました ^^;
Array#reverse() は、連想配列 (文字列をキーにした配列) には効かないみたいです。
なので、こんな感じではどうでしょう。
function dump_array(a) { console.log("--------------------"); for (var i in a) { console.log(i + " : " + a[i]); } } function reverse_array_ex(a) { var key = []; for (var i in a) { key.push(i); } key.reverse(); var ret = []; for (var i in key) { ret[key[i]] = a[key[i]]; } return ret; } var hoge = []; hoge['aaa'] = 'あいうえお'; hoge['bbb'] = 'かきくけこ'; hoge['ccc'] = 'さしすせそ'; hoge['ddd'] = 'たちつてと'; hoge['eee'] = 'なにぬねの'; dump_array(hoge); // Array#reverse() は、連想配列には効かない hoge.reverse(); dump_array(hoge); // key を逆順に並べなおして、新たに連想配列を作り直す hoge = reverse_array_ex(hoge); dump_array(hoge);
しかしそのタイプミスでいくつかのサイトがあるのも不思議ですね ーー;
確かに。ググってみると、引っかかりますね。
迷ったときは、公式のサイトを当たるのが良いと思います(分かりにくいかもしれないですけど)。
Array - JavaScript | MDN
Array Object (JavaScript)
ありがとうございます。
確かに。ググってみると、引っかかりますね。
2014/06/01 22:12:56迷ったときは、公式のサイトを当たるのが良いと思います(分かりにくいかもしれないですけど)。
Array - JavaScript | MDN
Array Object (JavaScript)
ありがとうございます。
2014/06/01 22:48:26