-1
私はlodash平坦化関数を持っていますが、すべての入れ子配列の合計を結果に加算する必要があります。このAoAのための例えば合計レベルが1つのみ返される配列の平坦化
、:
[[[1,2,3],[1,5]], [[1,1,2]]]
結果は次のようになります。
[16,12,6,1,2,3,6,1,5,4,1,1,2]
それを行うための効率的な方法は何ですか?
これは私がこれまでにやったことですが、それは合計1レベルだけ戻っている:あなたはアキュムレータとしての和のためのインデックスゼロでゼロを取って、配列でArray#reduce
を使用することができ
function buildDataFromAOA(aoa) {
if (!aoa[0].length)
return [aoa.reduce((sum, item) => sum += item, 0)].concat(aoa);
let data = [];
for (var i = 0; i < aoa.length; i++) {
data = data.concat(buildDataFromAOA(aoa[i]))
}
return data;
}
この出力を達成するためのロジックとは何ですか?また、あなたの試行を共有 – gurvinder372
@ gurvinder372彼はそれぞれの配列の前に複数のメンバーを持つ各配列から合計を挿入しています。 – Bergi