SOURCE

const arr = [[1,2,3,4,[6,7,8]],[5,6,7]];

console.log(_.flatMap(arr, duplicate));
console.log(flatMap(arr, duplicate));

function duplicate(n) {
    return [n, n];
}

function flatMap(collection, interatee) {
    if (interatee instanceof Function) {
        collection = collection.map(item => interatee(item));
    }
    let newArr = [];
    for (let item of collection) {
        if (item instanceof Array) {
            newArr = newArr.concat(flatMap(item));
        } else {
            newArr.push(item);
        }
    }
    return newArr;
}
console 命令行工具 X clear

                    
>
console