W3Cschool中级脚本算法(18.数组平铺算法挑战)

数组平铺算法挑战


问题:

对嵌套的数组进行平铺嵌套数组。你必须考虑到不同层级的嵌套。


要求:

steamroller([[["a"]], [["b"]]]) 应该返回 ["a", "b"]

steamroller([1, [2], [3, [[4]]]]) 应该返回 [1, 2, 3, 4]

steamroller([1, [], [3, [[4]]]]) 应该返回 [1, 3, 4]

steamroller([1, {}, [3, [[4]]]]) 应该返回 [1, {}, 3, 4]


问题答案:

function steamroller(arr) {

let result = [];
function steam(ifArr) {
    // I'm a steamroller, baby
    if (Array.isArray(ifArr)) {
            return ifArr.forEach(function (val){
                return steam(val);
            });
        } 
    else {
            result.push(ifArr);
        }
    }
    steam(arr);
    return result;
}

steamroller([1, [2], [3, [[4]]]]);

题目链接:

https://www.w3cschool.cn/codecamp/steamroller.html

猜你喜欢

转载自blog.csdn.net/qq_42044073/article/details/82732862