Array.prototype.flat() (扁平化数组 )

扁平化数组 Array.prototype.flat方法

使用方法总结

1. Array.prototype.flat() 用于将嵌套的数组“拉平”,变成一维的数组。该方法返回一个新数组,对原数据没有影响。
2. 不传参数时,默认“拉平”一层,可以传入一个整数,表示想要“拉平”的层数。
3. 传入 参数<=0 的整数将返回原数组,不“拉平”。
4. Infinity 关键字作为参数时,无论多少层嵌套,都会转为一维数组。
5. 如果原数组有空位,Array.prototype.flat() 会跳过空位。

代码示例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
     <script>
         var _array = ['苹果',["狗","猫"],["动物",["家禽",["鸭"]]]]
         
        //1、不传递任何参数的时候,默认“拉平一层”
        var _arrayOne = _array.flat()
        var _arrayTwo = _array.flat(1)
        console.log(_arrayOne) //['苹果',"狗","猫","动物",["家禽",["鸭"]]]
        console.log(_arrayTwo)//['苹果',"狗","猫","动物",["家禽",["鸭"]]]
        
        //2、传入一个整数参数,这个整数参数就是拉平的层数
        var _arrayThree = _array.flat(2)
        var _arrayFour = _array.flat(3)
        console.log(_arrayThree)//['苹果',"狗","猫","动物","家禽",["鸭"]]
        console.log(_arrayFour)//['苹果',"狗","猫","动物","家禽","鸭"]

        //3、Infinity 关键字作为参数时,无论多少层嵌套,都会转为一维数组
        var _arrayFive = _array.flat(Infinity)
        console.log(_arrayFive)//['苹果',"狗","猫","动物","家禽","鸭"]

        //4、传入参数<=0 的整数将返回原数组,不“拉平”。 
        var _arraySix = _array.flat(0)
        console.log(_arraySix) //['苹果',["狗","猫"],["动物",["家禽",["鸭"]]]]

        //5、如果原数组有空位,flat() 会跳过空位
        var _array = ['苹果',"狗","猫", ,,]
        console.log(_array.flat()) //['苹果',"狗","猫"]  会直接把空格还有空值给越过去,但是如果是""(空字符串就不会越过)
     </script>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/weixin_43131046/article/details/113543838