JS implementation flattening the array, expanding the multidimensional array into a one-dimensional array
Method One, recursion
function Flatten (arr) {let result = []; for (let i=0;i<arr.length;i++) { if (Array.isarray (Arr[i])) { result = Result.concat (Flatten (arr[i))); } else{ Result.push (Arr[i]); } } return result;} Console.log (Flatten ([' A ', [' B ', ' C ', [7, 8]],[4,5,[6]]))
Method Two, Arrary.reduce
function Flatten2 (arr) { return arr.reduce ((accumulator,currentvalue) = Accumulator.concat ( Array.isarray (currentvalue)? Flatten2 (CurrentValue): CurrentValue), []);} Console.log (Flatten2 ([' A ', [' B ', ' C ', [7, 8]],[4,5,[6]]));
Review Upgrade: Requires this function to accept a parameter to determine the flattening depth
function Flatten_deep (arr, deep) {let result = []; if (Array.isarray (arr) && deep > 0) {for (let i = 0; i < arr.length; i++) { result = Result.concat ( Flatten_deep (Arr[i], deep-1)); } } else { Result.push (arr); } return result;} Console.log (Flatten_deep ([' A ', [' B ', ' C ', [7, 8]],[4,5,[6,[' DD ', ' WHIDHW ']]]],3));
JS Array flattening