Advertisement
Guest User

Untitled

a guest
Jan 19th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.87 KB | None | 0 0
  1. /**--- SOLUTION NOTES ---**/
  2.  
  3. /*
  4. We don't know how deeply the array can
  5. be nested, so I've gone with an iterative
  6. approach to avoid depth limits, although
  7. a recursive solution would be much more elegant.
  8. */
  9.  
  10. /*-------------*/
  11.  
  12.  
  13.  
  14. /**
  15. * Flattens an arbitrarily deeply nested array
  16. * of numbers.
  17. *
  18. * @param {number[]} arrayOfNumbers - The nested array
  19. * @return {number[]} The flattened array
  20. */
  21.  
  22. function flattenArrayOfNumbers(arrayOfNumbers) {
  23. let flattenedArray = [];
  24.  
  25. if (Array.isArray(arrayOfNumbers) && arrayOfNumbers.length) {
  26. for (let i = 0; i < arrayOfNumbers.length; i++) {
  27. let entry = arrayOfNumbers[i];
  28.  
  29. if (Array.isArray(entry) && entry.length) {
  30. arrayOfNumbers.splice(i, 1, ...entry);
  31. i--;
  32.  
  33. } else if (typeof entry === 'number') {
  34. flattenedArray.push(entry);
  35. }
  36. }
  37. }
  38.  
  39. return flattenedArray;
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement