メモ:2次元配列の行列を入れ替える

自分用のメモ。
理解を補助するために作成。

参考サイト:
ワクガンス | JavaScriptの覚書

参考コード:

function transpose(a) {
  return Object.keys(a[0]).map(function (c) {
    return a.map(function (r) {
      return r[c];
    });
  });
}   

※参考サイトより引用


Object.keys(array) で2次元配列の添字を返す。
これが変換後の行の添字になる。

var array = [[部門コード, 1000.0, 2000.0, 3000.0, 4000.0], [ほげ, 1.0, 4.0, 7.0, 10.0], [ふむ, 2.0, 5.0, 8.0, 11.0], [ぴよ, 3.0, 6.0, 9.0, 12.0]];
console.log(Object.keys(array)); // console: [0, 1, 2, 3, 4]

参考:
Object.keys() - JavaScript | MDN


mapの中でmapを実行すると、2次元配列がかえる。


最初に変換後の行の添字を取り出したのは、縦に読んでいくため。
各行の0番目の値を取り出した配列を作る、行の1番目の値を取り出した配列を作る…を繰り返して、新しい2次元配列を作成。

f:id:maetoo11:20170510122601p:plain

f:id:maetoo11:20170510122947p:plain


納得ヽ(=´▽`=)ノ