やりたいこと
2次元配列のX軸Y軸を転置したい場合に、Pythonのnumpyで使える「transpose」関数と同じことをJavaScriptで行う場合のメモ。
以下はPythonの例。
import numpy as np
org = [[ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]
np.array(org).transpose().tolist()
# [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
JavaScriptでやる方法
こちらの記事で紹介されているワンライナーで書く方法。ちょっとテクニカルな感じ。
const org = [[ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]
const transpose = a => a[0].map((_, c) => a.map(r => r[c]))
transpose(org)
// [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
Lodashが使える場合、zip関数を使うと簡単。
const org = [[ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]
_.zip.apply(null, org)
// [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
おしまい。