I have an array which contains several arrays, each containing several objects, similar to this.
[[object1, object2],[object1],[object1,object2,object3]]
let functional = { flatten (array) { if (Array.isArray(array)) { return Array.prototype.concat(...array.map(this.flatten, this)); } return array; } }; functional.flatten([0, [1, 2], [[3, [4]]]]); // 0, 1, 2, 3, 4