当前位置:首页 > JavaScript

flat实现js

2026-03-14 14:35:43JavaScript

flat实现js

flat实现js

flat 方法的基本概念

flat() 是 JavaScript 数组的一个方法,用于将嵌套数组“拉平”(扁平化),返回一个新数组。默认情况下,它只会拉平一层嵌套,但可以通过参数指定拉平的深度。

语法

arr.flat([depth])
  • depth(可选):指定拉平的深度,默认为 1。若需完全拉平,可传递 Infinity

使用示例

默认拉平一层

const arr = [1, 2, [3, 4]];
console.log(arr.flat()); // [1, 2, 3, 4]

指定拉平深度

const arr2 = [1, 2, [3, 4, [5, 6]]];
console.log(arr2.flat(2)); // [1, 2, 3, 4, 5, 6]

完全拉平所有嵌套

const arr3 = [1, [2, [3, [4]]]];
console.log(arr3.flat(Infinity)); // [1, 2, 3, 4]

注意事项

  • 原数组不会被修改,flat() 返回一个新数组。
  • 空项(稀疏数组的空位)会被移除:
    const arr4 = [1, , 3, [4, , 6]];
    console.log(arr4.flat()); // [1, 3, 4, 6]

兼容性与替代方案

  • flat() 是 ES2019 引入的方法,旧版浏览器需通过 Babel 等工具转译。
  • 替代实现(递归拉平):
    function flatten(arr, depth = 1) {
      return depth > 0
        ? arr.reduce((acc, val) => 
            acc.concat(Array.isArray(val) ? flatten(val, depth - 1) : val), [])
        : arr.slice();
    }

应用场景

  • 处理嵌套的 API 响应数据。
  • 合并多层数组结构为一维数组。
  • 清理数据中的空项或稀疏项。

标签: flatjs
分享给朋友:

相关文章

js实现分页

js实现分页

实现分页的基本思路 分页功能通常需要处理数据分割、页码生成和用户交互。核心逻辑包括计算总页数、根据当前页截取数据、渲染页码按钮等。 前端分页实现(静态数据) 假设已有全部数据,仅需前端分页展示:…

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previo…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获取 jQ…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <di…