美文网首页
JavaScript专题之数组扁平化

JavaScript专题之数组扁平化

作者: __越过山丘__ | 来源:发表于2018-11-22 17:35 被阅读0次

    原文:https://github.com/mqyqingfeng/Blog/issues/36

    // 方法 1
    var arr = [1, [2, [3, 4]]];
    
    function flatten(arr) {
        var result = [];
        for (var i = 0, len = arr.length; i < len; i++) {
            if (Array.isArray(arr[i])) {
                result = result.concat(flatten(arr[i]))
            }
            else {
                result.push(arr[i])
            }
        }
        return result;
    }
    console.log(flatten(arr))
    
    // 方法2
    var arr = [1, [2, [3, 4]]];
    
    function flatten(arr) {
        return arr.reduce(function(prev, next){
            return prev.concat(Array.isArray(next) ? flatten(next) : next)
        }, [])
    }
    
    console.log(flatten(arr))
    
    // 方法3
    var arr = [1, [2, [3, 4]]];
    
    function flatten(arr) {
    
        while (arr.some(item => Array.isArray(item))) {
            arr = [].concat(...arr);
        }
    
        return arr;
    }
    
    console.log(flatten(arr))
    

    相关文章

      网友评论

          本文标题:JavaScript专题之数组扁平化

          本文链接:https://www.haomeiwen.com/subject/hoxrqqtx.html