Iまし間違ってフォーマットされた2次元配列は、以下のようなもの:私はそれは次のように変換したいJavascriptが2次元配列の新しい2次元配列を作成
[['a','b','c'],['d','f','e'],['g','h','i']]
:
[['a','d','g'],['b','f','h'],['c','e','i']]
これには最高の方法は何ですか?私は解決策を見つけることができません。
Iまし間違ってフォーマットされた2次元配列は、以下のようなもの:私はそれは次のように変換したいJavascriptが2次元配列の新しい2次元配列を作成
[['a','b','c'],['d','f','e'],['g','h','i']]
:
[['a','d','g'],['b','f','h'],['c','e','i']]
これには最高の方法は何ですか?私は解決策を見つけることができません。
この方法をお試しください。さらに動的なコードを追加するためにArray.from({length: array.length}, (value, key) => key)
を追加しました。
const array = [['a','b','c'],['d','f','e'],['g','h','i']];
const mapped = array.map((item, index, arr) => Array.from({length: array.length}, (value, key) => key).map(i => arr[i][index]));
console.log(mapped);
これは私のために働く –
@RalphJanssenそれがうまくいくならば、答えを受け入れて他人に知らせる – pfg
あなたは新しい結果のためにインデックスを交換することにより、配列をtransposteことができます。
var array =[['a','b','c'],['d', 'f', 'e'], ['g', 'h', 'i']],
result = array.reduce(function (r, a, i) {
a.forEach(function (v, j) {
(r[j] = r[j] || [])[i] = v;
});
return r;
}, []);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
a=[['a','b','c'],['d','f','e'],['g','h','i']]
// initialising b
b= [['a','b','c'],['d','f','e'],['g','h','i']]
//Talking transpose
for(i =0;i<3;i++){
for(j=0;j<3;j++){
b[i][j] = a[j][i];
}
}
ダブルマップ1つのライナーソリューション。外側の配列の長さを想定しており、内側の配列の長さは、あなたが文字を交換したいものを根拠に同じ
var data = [['a','b','c'],['d','f','e'],['g','h','i']]
var res= data.map((a, i) => data.map((arr)=>arr[i]));
console.log(res)
ですか? –