当前位置:首页 > JavaScript

reduce实现js

2026-03-13 18:24:49JavaScript

使用 reduce 实现数组求和

reduce 可以对数组元素进行累加求和。初始值设为 0,回调函数将当前值累加到总和。

const numbers = [1, 2, 3, 4];
const sum = numbers.reduce((total, num) => total + num, 0);
console.log(sum); // 输出: 10

使用 reduce 实现数组扁平化

通过递归或直接拼接子数组,reduce 可将多维数组扁平化为一维数组。

const nestedArray = [1, [2, [3, [4]]]];
const flatten = (arr) => 
  arr.reduce((flat, item) => 
    flat.concat(Array.isArray(item) ? flatten(item) : item), []);
console.log(flatten(nestedArray)); // 输出: [1, 2, 3, 4]

使用 reduce 统计元素出现次数

通过初始化一个空对象,reduce 可以统计数组中各元素的出现频率。

const fruits = ['apple', 'banana', 'apple', 'orange'];
const count = fruits.reduce((acc, fruit) => {
  acc[fruit] = (acc[fruit] || 0) + 1;
  return acc;
}, {});
console.log(count); // 输出: {apple: 2, banana: 1, orange: 1}

使用 reduce 实现数组去重

利用 reduceincludes 方法,可以过滤掉重复元素。

const duplicates = [1, 2, 2, 3, 4, 4];
const unique = duplicates.reduce((acc, num) => 
  acc.includes(num) ? acc : [...acc, num], []);
console.log(unique); // 输出: [1, 2, 3, 4]

使用 reduce 实现对象属性分组

根据对象的某个属性值,reduce 可以将对象数组分组为键值对结构。

const people = [
  { name: 'Alice', age: 21 },
  { name: 'Bob', age: 21 },
  { name: 'Charlie', age: 22 }
];
const grouped = people.reduce((groups, person) => {
  const key = person.age;
  groups[key] = groups[key] || [];
  groups[key].push(person);
  return groups;
}, {});
console.log(grouped);
// 输出: {21: [{name: 'Alice', age: 21}, {name: 'Bob', age: 21}], 22: [{name: 'Charlie', age: 22}]}

使用 reduce 实现管道函数组合

通过 reduce 可以将多个函数依次组合,形成管道式调用。

reduce实现js

const pipe = (...fns) => (x) => fns.reduce((v, fn) => fn(v), x);
const add1 = x => x + 1;
const double = x => x * 2;
const process = pipe(add1, double);
console.log(process(3)); // 输出: 8 (3 + 1 = 4, 4 * 2 = 8)

标签: reducejs
分享给朋友:

相关文章

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…

js实现论坛

js实现论坛

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

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 /…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…