Pregunta de entrevista de Meta

Given an array where each entry can be another array, and so forth, flatten the array. [4, [3, 6, [9, 1, 9, [5, 1]]], 8] -> [4, 3, 6, 9, 1, 9, 5, 1, 8]

Respuestas de entrevistas

Anónimo

25 mar 2014

Assuming that we are solving this in Java, I am treating an array as an array list // Use Hash Set to prevent infinite loops HashSet hs = new HashSet(); ArrayList flatten_list(ArrayList arr, HashSet hs) { ArrayList result = new ArrayList; int len = arr.size(); if(len < 1) return result; // Empty List. for(int i = 0 ; i

Anónimo

23 jul 2018

function serialize(a, start){ if(start >= a.length) return a; if(Array.isArray(a[start])) return serialize([...a.slice(0,start),...a[start], ...a.slice(start+1,a.length)], start+1); return serialize(a, start+1); }

Anónimo

20 feb 2019

const flatten = array = > { return array.reduce((elem, acc) = > { return elem.concat(Array.isArray(acc) ? flatten(acc) : acc) }, []) }

Anónimo

14 jun 2019

// javascript var array = [4, [3, 6, [9, 1, 9, [5, 1]]], 8]; function flatten(array) { return array.toString().split(','); }

Anónimo

9 sep 2019

const flatten = numOrArrays => numOrArrays.reduce((result, numOrArray) => [...result, ...(Arrays.isArray(numOrArray) ? flatten(numOrArray) : [numOrArray] )], []);