Skip to content

Instantly share code, notes, and snippets.

@thedgbrt
Created February 2, 2017 00:05
Show Gist options
  • Select an option

  • Save thedgbrt/2f49478cfc494966b05d346e28028f7a to your computer and use it in GitHub Desktop.

Select an option

Save thedgbrt/2f49478cfc494966b05d346e28028f7a to your computer and use it in GitHub Desktop.

Revisions

  1. thedgbrt created this gist Feb 2, 2017.
    23 changes: 23 additions & 0 deletions flatten.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,23 @@
    function flatten(arr){
    var flatArr = [];

    var recursive = function(arr2) {
    if(arr2.length == 0) {
    return;
    } else if (Array.isArray(arr2[0])) {
    recursive(arr2[0]);
    } else {
    flatArr.push(arr2[0]);
    }
    recursive(arr2.slice(1));
    }

    recursive(arr);
    return flatArr;
    }

    var test1 = JSON.stringify(flatten([])) === JSON.stringify([]);
    var test2 = JSON.stringify(flatten([1])) === JSON.stringify([1]);
    var test3 = JSON.stringify(flatten([[1,2]])) === JSON.stringify([1,2]);
    var test4 = JSON.stringify(flatten([[1,2],3])) === JSON.stringify([1,2,3]);
    var test5 = JSON.stringify(flatten([[1,2,[3]],4])) === JSON.stringify([1,2,3,4]);