js 數組扁平化


// 扁平化簡單的二維數組 const arr = [11, [22, 33], [44, 55], 66]; const flatArr = arr.join().split(','); // ["11", "22", "33", "44", "55", "66"]

主要使用的join方法:

//如果數組中的元素是數組,會將里面的數組也調用join() let num = [[1,2],3]; let str1 = num.join('-'); // 1,2-3

 

方法2:

// 扁平化簡單的二維數組 const arr = [11, [22, 33], [44, 55], 66]; const flatArr = arr.toString().split(','); // ["11", "22", "33", "44", "55", "66"]

知識點:

[1,[2,'c']].toString(); //1,2,c

// 以上與不使用任何參數調用join()方法返回的字符串是一樣的。

 方法3:

flat()默認只會“拉平”一層,如果想要“拉平”多層的嵌套數組,可以將flat()方法的參數寫成一個整數,表示想要拉平的層數,默認為1。

[1, 2, [3, [4, 5]]].flat() // [1, 2, 3, [4, 5]]
 [1, 2, [3, [4, 5]]].flat(2) // [1, 2, 3, 4, 5]

如果不管有多少層嵌套,都要轉成一維數組,可以用Infinity關鍵字作為參數。

[1, [2, [3]]].flat(Infinity) // [1, 2, 3]

 方法四:

function flatten(arr){
    var res = [];
    for(var i=0;i<arr.length;i++){
        if(Array.isArray(arr[i])){
            res = res.concat(flatten(arr[i]));
        }else{
            res.push(arr[i]);
        }
    }
    return res;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM