数组常用方法和数字扁平化

103 阅读1分钟

数组常用方法

var arr = ['a', 'b', 'c'];

1. pop()

语法: 数组.pop();
作用: 删除数组的最后一个成员
返回值: 被删除的数组成员
会改变原数组
var res = arr.pop();
console.log(res) // 'c' 删除的元素作为返回值
console.log(arr) // ["a", "b"]

数组的扁平化

const arr = [1, 2, 3, 4, { name: '张三' }, [5, 6, 7, 8, { name: '李四' }, [9, 10, 11, 12, { name: '王五' }]]]

1. 面试版

封装
        function flat(origin) {
            // 1. 创建一个空数组, 用来接收扁平化以后的元素内容
            const newArr = []

            // 2. 利用递归函数, 实现数组的扁平化
            function fn(fnOrigin) {
                fnOrigin.forEach((item) => {
                    if (Object.prototype.toString.call(item) === '[object Array]') {
                        fn(item)// 说明当前 item 是一个数组, 所此时需要递归调用 fn 函数
                    } else {
                        newArr.push(item) // 如果当前分支执行, 说明 item 一定不是一个数组
                    }
                })
            }
            
            fn(origin) //调用fn函数
            return newArr // 3. 把处理好的数组(newArr) 返回出去
        }

        const flatArr = flat(arr)
        console.log(flatArr)
简写
    const newArr = []
    function fn(fnOrigin) {
        fnOrigin.forEach(item => {
            if (Object.prototype.toString.call(item) === '[object Array]') {
                fn(item)
            } else {
                newArr.push(item)
            }
        });
        return newArr
    }
    const result=fn(arr)
    console.log(result);

2. 工作版

 arr.flat(Infinity)
 console.log(arr)
 console.log(arr.flat(1))
 console.log(arr.flat(2))
 console.log(arr.flat(Infinity))

微信截图_20230212223104.png