zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    每日签到
    手机刮刮卡
    js随机更换
    jquery实现input输入框实时输入触发事件代码
    webAPP前端必备知识
    让你分分钟学会 JS 闭包
    js获取url?后的参数
    js获取上传的文件名
    Javascript 中神奇的 this
    由浅入深完全掌握Ajax
  • 原文地址:https://www.cnblogs.com/mengfangui/p/9485703.html
Copyright © 2011-2022 走看看