【前端每日一题】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);
相关推荐
whatever who cares5 分钟前
Vue3中vue文件和composables的分工
前端·javascript·vue.js
袋鼠云数栈UED团队6 分钟前
基于 superpowers 实现复杂前端改造
前端
袋鼠云数栈前端9 分钟前
基于 superpowers 实现复杂前端改造
前端·ai
sugar__salt11 分钟前
LLM服务HTTP接口实战:前端HTTP请求全解与项目落地
前端·网络协议·http
薛先生_09917 分钟前
vue-编程式跳转-基本跳转
前端·javascript·vue.js
微三云、小叶25 分钟前
排队免单系统底层设计:四种分配算法拆解,无预支资金的合规营销架构方案
java·前端·软件开发·商业模式·本地生活·商业思维
copyer_xyf31 分钟前
Python 内存分析:从栈和堆理解对象引用
前端·后端·python
whatever who cares1 小时前
大型 React 项目的文件结构
前端·react.js·前端框架
AI_零食1 小时前
健身室器材管理系统鸿蒙PC Electron框架编写深度解析
前端·javascript·学习·华为·electron·前端框架·鸿蒙