当前位置:首页 > JavaScript

js实现flatmap

2026-03-14 12:09:08JavaScript

实现 flatMap 的方法

在 JavaScript 中,flatMap 是一种结合了 mapflat 功能的方法,它会先对数组中的每个元素执行映射函数,然后将结果展平一层。以下是几种实现方式:

使用 Array.prototype.flatMap

现代 JavaScript 已经原生支持 flatMap 方法,可以直接使用:

js实现flatmap

const arr = [1, 2, 3];
const result = arr.flatMap(x => [x, x * 2]);
console.log(result); // [1, 2, 2, 4, 3, 6]

手动实现 flatMap

如果需要在没有原生支持的环境中实现 flatMap,可以通过以下方式:

js实现flatmap

function flatMap(arr, callback) {
  return arr.reduce((acc, current) => {
    const mapped = callback(current);
    return acc.concat(mapped);
  }, []);
}

const arr = [1, 2, 3];
const result = flatMap(arr, x => [x, x * 2]);
console.log(result); // [1, 2, 2, 4, 3, 6]

使用 map 和 concat

另一种实现方式是结合 mapconcat

function flatMap(arr, callback) {
  return [].concat(...arr.map(callback));
}

const arr = [1, 2, 3];
const result = flatMap(arr, x => [x, x * 2]);
console.log(result); // [1, 2, 2, 4, 3, 6]

处理多层嵌套

如果需要展平多层嵌套,可以结合递归或指定展平深度:

function deepFlatMap(arr, callback, depth = 1) {
  return arr.map(callback).flat(depth);
}

const arr = [1, [2, [3]]];
const result = deepFlatMap(arr, x => x, 2);
console.log(result); // [1, 2, 3]

以上方法可以根据实际需求选择使用,原生 flatMap 是最简洁高效的方式。

标签: jsflatmap
分享给朋友:

相关文章

js实现轮播图

js实现轮播图

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

vue实现js休眠

vue实现js休眠

Vue 中实现 JavaScript 休眠 在 Vue 中实现 JavaScript 休眠通常需要使用异步方式,以避免阻塞主线程。以下是几种常见方法: 使用 setTimeout 和 Pro…

js实现vue

js实现vue

Vue.js 简介 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。其核心库专注于视图层,易于与其他库或现有项目整合。 实现 Vue.js 的基本步骤 安装 Vue.j…

js实现计算器

js实现计算器

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

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval 实…

jquery.js

jquery.js

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