数组reduce的众多用法

用例 1:对数字求和

const numbers= [1, 2, 3, 4, 5];
const sum = numbers.reduce((acc, curr) => acc + curr, 0);
console.log(sum); // Output: 15

用例2:对对象进行分组 

const people = [
  { name: 'Alice', age: 25 },
  { name: 'Bob', age: 30 },
  { name: 'Charlie', age: 25 },
  { name: 'Dave', age: 30 }
];

const groupByAge = people.reduce((acc, curr) => {
  if (!acc[curr.age]) {
    acc[curr.age] = [];
  }
  acc[curr.age].push(curr);
  return acc;
}, {});

console.log(groupedByAge);
/*
Output:
{
  '25': [{ name: 'Alice', age: 25 }, { name: 'Charlie', age: 25 }],
  '30': [{ name: 'Bob', age: 30 }, { name: 'Dave', age: 30 }]
}
*/

用例3:创建查找映射 

const products = [
  { id: 1, name: 'Laptop', price: 999 },
  { id: 2, name: 'Phone', price: 699 },
  { id: 3, name: 'Tablet', price: 499 },
];

const productMap = products.reduce((acc, curr) => {
  acc[curr.id] = curr;
  return acc;
}, {});

console.log(productMap);
/*
Output:
{
  '1': { id: 1, name: 'Laptop', price: 999 },
  '2': { id: 2, name: 'Phone', price: 699 },
  '3': { id: 3, name: 'Tablet', price: 499 }
}
*/

 用例4:展平数组

const nestedArray = [[1, 2], [3, 4], [5, 6]];
const flattenedArray = nestedArray.reduce((acc, curr) => acc.concat(curr), []);
console.log(flattenedArray); // Output: [1, 2, 3, 4, 5, 6]

相关推荐

  1. 数组reduce众多

    2024-07-19 02:24:02       23 阅读
  2. 【Python函数】functools.reduce()函数

    2024-07-19 02:24:02       55 阅读
  3. reduce 实现 map 功能

    2024-07-19 02:24:02       45 阅读
  4. Reducer 和 Context实现简单Redux

    2024-07-19 02:24:02       57 阅读
  5. 数组指针

    2024-07-19 02:24:02       31 阅读
  6. shell关联数组

    2024-07-19 02:24:02       48 阅读
  7. nc

    2024-07-19 02:24:02       60 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-19 02:24:02       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-19 02:24:02       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-19 02:24:02       62 阅读
  4. Python语言-面向对象

    2024-07-19 02:24:02       72 阅读

热门阅读

  1. 泛型+反射

    2024-07-19 02:24:02       18 阅读
  2. 牛客周赛51

    2024-07-19 02:24:02       23 阅读
  3. 开始构建我们自己的大语言模型:数据处理部分

    2024-07-19 02:24:02       22 阅读
  4. Vue.js(第一天)

    2024-07-19 02:24:02       23 阅读
  5. ThreadPoolExecutor拒绝策略

    2024-07-19 02:24:02       24 阅读
  6. Redis 散列

    2024-07-19 02:24:02       19 阅读
  7. C# —— HashTable

    2024-07-19 02:24:02       24 阅读
  8. 4 Ajax

    2024-07-19 02:24:02       21 阅读
  9. GNU/Linux - U-BOOT的GPIO command

    2024-07-19 02:24:02       19 阅读
  10. 一篇文章帮你彻底搞懂剩余运算符!!

    2024-07-19 02:24:02       20 阅读
  11. selenium 之 css定位

    2024-07-19 02:24:02       22 阅读
  12. Elasticsearch SQL:解锁Elasticsearch数据的新方式

    2024-07-19 02:24:02       25 阅读