Quick actions

cmd+k|ctrl+k

Navigation

Languages

Flatten JS

Snippet info

Language

JavaScript

Visibility

public

Author

philwills

Created

2016-04-23T23:07:29Z

Updated

2016-04-23T23:07:40Z

function flatten(arr) {
    for(var i = 0; i < arr.length; ++i) {
        if (Array.isArray(arr[i])) {
            var args = [i, 1].concat(arr[i]);
            Array.prototype.splice.apply(arr, args);
            --i;
        }
    }
    
    return arr;
}

function flatten2(arr) {
    return arr.reduce(function(acc, el) {
        if (Array.isArray(el)) {
            return acc.concat(flatten2(el));
        }
        
        return acc.concat([el]);
    }, []);
}

var arr1 = [1, 2, [3, 4, [[5, 6], 7], 8, 9]];

console.log(flatten(arr1));
console.log(flatten2(arr1));
INFO