JSFiddle - React, Tailwind, and code Playground

by jackwanders

JavaScript

var flattenArray = function(arr) {
    var res = Array.prototype.slice.call(arr, 0);
    
    for (var i = 0; i < res.length;) {
        var v = res[i];
        if (v instanceof Array) {
            res.splice.apply(res, [i, 1].concat(v));
        } else {
            i++;   
        }
    }
    
    return res;
}

console.log(flattenArray([1,2,[[3,4],5,[[[6]],7]]]));


/* collabedit contents

flattenArray([1,2,[[3,4],5,[[[6]],7]]])
=> [1,2,3,4,5,6,7]


// [1,2, [3,4]] .. 
// arr = [[[3,4], 6]]
// [[3,4]]
// res = [1,2,[3,4]]
// res = [1, 2, 3, 4]


// [1,2].concat([3,4]) = [1,2,3,4]


// [1, 2, [3,4], 5, [[[6]],7]]
// [1, 2, 3, 4

// 

function flattenIter(arr) {
    var res = [];
    
    while (arr) {
        if (arr[0] instanceof Array) {
            temp = [].concat(arr[0]); // arr[0] is [[3,4]]
            res = res.concat(arr.shift());
        } else {
            res.push(arr.shift());
        }
    
    }
    
    
    
    
    
    var foundArr = false;
    
    do {
        res.forEach(function(v, i) {
            if (v instanceof Array) { // Array.isArray(arr)
                res.splice.apply(res, [i, 1].concat(v)); // res.splice(i, 1, [3, 4]);
                [1, 2, ]
                foundArr = true;
            } else {
                res.push(v);
            }
        });
    } while(foundArr)
        
    return res;
}


function flattenArray(arr) {
  var res = [];
  arr.forEach(function(v) {
      if (v instanceof Array) {
          var flat = flattenArray(v);
          res = res.concat(flat);
      } else {
          res.push(v);
      }
  });
  return res;
}

*/