Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**--- SOLUTION NOTES ---**/
- /*
- We don't know how deeply the array can
- be nested, so I've gone with an iterative
- approach to avoid depth limits, although
- a recursive solution would be much more elegant.
- */
- /*-------------*/
- /**
- * Flattens an arbitrarily deeply nested array
- * of numbers.
- *
- * @param {number[]} arrayOfNumbers - The nested array
- * @return {number[]} The flattened array
- */
- function flattenArrayOfNumbers(arrayOfNumbers) {
- let flattenedArray = [];
- if (Array.isArray(arrayOfNumbers) && arrayOfNumbers.length) {
- for (let i = 0; i < arrayOfNumbers.length; i++) {
- let entry = arrayOfNumbers[i];
- if (Array.isArray(entry) && entry.length) {
- arrayOfNumbers.splice(i, 1, ...entry);
- i--;
- } else if (typeof entry === 'number') {
- flattenedArray.push(entry);
- }
- }
- }
- return flattenedArray;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement