【前端每日一题】day4——数组扁平化的实现

数组扁平化的实现

数组扁平化(flatten)是将一个多维数组转换为一个一维数组的过程。在 JavaScript 中,可以使用递归或者数组的一些内置方法来实现数组扁平化。

递归实现:

javascript 复制代码
function flattenArray(arr) {
    var result = [];
    arr.forEach(function(item) {
        if (Array.isArray(item)) {
            result = result.concat(flattenArray(item));
        } else {
            result.push(item);
        }
    });
    return result;
}

使用 reduce() 方法实现:

javascript 复制代码
function flattenArray(arr) {
    return arr.reduce(function(prev, curr) {
        return prev.concat(Array.isArray(curr) ? flattenArray(curr) : curr);
    }, []);
}

使用 flat() 方法(ES6+):

javascript 复制代码
// 指定深度
array.flat(depth);
javascript 复制代码
// 无限深度
array.flat(Infinity);

使用扩展运算符(ES6+):

javascript 复制代码
var arr = [1, [2, [3, 4]]];
var flattenedArray = [].concat(...arr);
相关推荐
Sui_Network27 分钟前
WAYE.ai 为Sui 上 AI 的下一个时代赋能
大数据·前端·人工智能·物联网·游戏
掘金安东尼1 小时前
换了无数键盘、工学椅,却从没认真选过一块为程序员“注意力”设计的屏
前端·面试·github
Bigger1 小时前
🍸 Apple Liquid Glass 设计理念与前端实现解析
前端·css·apple
星火飞码iFlyCode1 小时前
【无标题】
java·前端·人工智能·算法
夏梦春蝉1 小时前
ES6从入门到精通:变量
前端·javascript·es6
步行cgn1 小时前
ES6 核心语法手册
前端·javascript·es6
sorryhc2 小时前
React SSR同构渲染方案是什么?
前端·javascript·next.js
护国神蛙2 小时前
给你一个页面如何定时刷新
前端·javascript·浏览器
一直游到海水变蓝丿3 小时前
el-select下拉框 添加 el-checkbox 多选框
前端·javascript·vue.js
阿奇__4 小时前
element 跨页选中,回显el-table选中数据
前端·vue.js·elementui