2次元配列からすべての要素をその行で取り出し、1次元配列を返す関数があります。 配列にはさまざまな量の列と行があります。異なる長さの配列を含む2次元配列の行を反復する
例:
let arr = [
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]
];
戻り値:
[1, 5, 9, 2, 6, 10, 3, 7, 11, 4, 8, 12]
私が思いついた機能:
convertList = (list) => {
let result = [];
let listTotalEntries = R.sum(R.map(R.length)(list));
let mod = R.modulo(R.__, list.length);
let counterRow = -1;
for (let i = 0; i < listTotalEntries; i++) {
if (mod(i) === 0) {
counterRow++;
}
if (list[mod(i)][counterRow]) {
result.push(list[mod(i)][counterRow]);
console.log(list[mod(i)][counterRow]);
}
}
console.log(result);
return result;
};
質問:この関数は、正方行列でのみ動作します - どのようにすることができます私はそれが含まれている配列の可変長で動作するように?
例:
let arr = [
[1, 2],
[],
[9, 10, 11, 12]
];
が返す必要があります:あなたの助けを
[1, 9, 2, 10, 11, 12]
ありがとう!
マフ
うわー!魅力的で、しなやかで、きちんとしています!ラムダに転位のような機能があることは分かりませんでした - すべての機能と関連する可能性を内在化するには時間と経験が必要です。ありがとう! – Raggamuffin
はい、Ramdaチームは機能の発見方法の改善に取り組んでいます。その一歩は[昨日公開されたばかりだった](https://github.com/ramda/ramda/wiki/What-Function-Should-I-Use%3F)。 –
素晴らしい! *ブックマーク* - マニュアル/ガイドの進歩を楽しみにしています。私はバージョン0.17のものを見つけましたが、序論の章だけがまだ利用可能であるように見えました。私は彼らがドキュメントの適切な補足としてそれを書いていることを願っています。 – Raggamuffin