1
私はフリーコードキャンプのスチームローラーの問題に取り組んでいました。私は2つの解決策を思いつきました:1つは完全に[1,2,3,4]で動作しますが、もう1つは[4]を与えています。配列を平坦化するための再帰
この問題は、あらゆる種類の配列を平坦化する関数を書くように求められます。
私の作業コード:
function steamrollArray(arr) {
newArr = [];
for (i = 0; i < arr.length; i++) {
if (Array.isArray(arr[i]) === true) {
newArr = newArr.concat(steamrollArray(arr[i]));
} else if (Array.isArray(arr[i]) === false) {
newArr.push(arr[i]);
}
}
return newArr;
}
steamrollArray([1, [2], [3, [[4]]]]);
私の働いていませんコード:
function steamrollArray(arr) {
newArr = [];
for (i = 0; i < arr.length; i++) {
if (Array.isArray(arr[i]) === true) {
newArr.push(steamrollArray(arr[i]));
} else if (Array.isArray(arr[i]) === false) {
newArr.push(arr[i]);
}
}
return newArr;
}
steamrollArray([1, [2], [3, [[4]]]]);
第二のコードは[4]にのみ与える、なぜ誰も説明できますか?最初のコードでは、あなたはローカル変数に代入されている
newArr = newArr.concat()
を使用しているので起こり
freecodecampチャットをこの質問タイプで使用できますか? – galkin
はいIcanですが、このすばらしいウェブサイトを使用してみませんか? –