当前位置:首页 > JavaScript

flat实现js

2026-03-14 14:35:43JavaScript

flat 方法的基本概念

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

flat实现js

语法

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实现轮播图

轮播图实现方法 基础HTML结构 <div class="slider"> <div class="slides"> <img src="image1.jpg…

js实现验证码

js实现验证码

实现验证码的JavaScript方法 生成随机验证码 使用Math.random()生成随机字符串,结合数字和字母: function generateCaptcha() { const cha…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

使用js实现

使用js实现

使用JavaScript实现 JavaScript可以通过Math.random()函数生成随机数,结合其他方法可以实现多种随机数生成需求。 // 生成0到1之间的随机小数 const random…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的JWT令牌…