Meta interview question

Flatten array. This array can have multiple types: {}, [], "", undefined, null, 123 are all valid types inside the array.

Interview Answers

Anonymous

Jul 26, 2015

function flatArray(val, resultArr) { var result = resultArr || []; if (val instanceof Array) { for (var i = 0; i < val.length; i++) { flatArray(val[i], result); } } else if (val instanceof Object) { for (var p in val) { result.push(val[p]) } } else { result.push(val); } return result; };

Anonymous

Jan 5, 2020

A non-recursive approach: const flatten = (a) => { a = a.reverse(); const res = []; while (a.length > 0) { const cur = a.pop(); if (Array.isArray(cur)) { for (let i = cur.length - 1; i >= 0; --i) a.push(cur[i]); } else { res.push(cur); } } return res; }