首页 > 其他分享 >TS 之 reduce

TS 之 reduce

时间:2022-12-16 08:00:13浏览次数:68  
标签:count acc initialValue cur reduce TS name

一.函数介绍

  • Array.reduce()方法是对数组进行遍历,返回一个计算后的值

  • 使用方法:

Array.reduce((acc, cur, idx, src) => { }, initialValue)

  • callback回调函数接收4个参数:
    Accumulator (acc) (累计器) 如果传入了initialValue,Accumulator的初始值就是initialValue,没传入就是数组的第一个值
    Current Value (cur) (当前值)
    Current Index (idx) (当前索引)如果传入了initialValue,索引从0开始,没传入从1开始
    Source Array (src) (源数组)

initialValue 指定的初始值,初始值可以是数字,数组,对象

二.例子

2.1.数组求和

const arr = [1, 2, 3, 4, 5, 6];
let c = arr.reduce((a, b) => {
    console.log(a, b);
    return a + b;
});
console.log(c);

2.2.对象数组求和

const arr = [
    {
        name: '张三',
        count: 1
    },
    {
        name: '李四',
        count: 2
    },
    {
        name: '王五',
        count: 3
    },
    {
        name: '赵六',
        count: 4
    }
];
/**
 * 对象数组求和
 * pre:number
 * cur:当前对象
 * 最后的0:初始值
 */

2.3.统计次数

/**
 * 统计字母出现的个数
 */
let str = 'HelloWorld';
let arrStr = str.split('');
type TNumb = {
    name: string;
    count: number;
};
let arrFinal = arrStr.reduce((acc: TNumb[], cur: string): TNumb[] => {
    let existItem = acc.find(it => it.name === cur);
    if (!existItem) {
        acc.push({ name: cur, count: 1 });
    } else {
        existItem.count++;
    }
    return acc;
}, []);
console.log(arrFinal);

标签:count,acc,initialValue,cur,reduce,TS,name
From: https://www.cnblogs.com/his365/p/16986440.html

相关文章

  • SOLIDWORKS二次开发插件SolidKits助力企业实现BOM自动化
    对于制造业企业来说,产品设计、结构设计很重要,同样重要的还有物料清单。只有内容全面且准确的BOM表,才能够让采购人员了解到,这批产品中我需要购买哪些零部件,购买的数量是多少......
  • TIL:Git Squash Commits
    背景比如开发某个feature,可能需要好几天,但是每天都需要提交代码(只是假设)那commit的粒度如何控制,可以看看这个讨论:https://www.v2ex.com/t/623219可是每天提交的信息好......
  • 15 个很棒的 Bootstrap UI 界面编辑器
    [导读]​​BootstrapMagic​​​​BootSwatchr​​​​BootstrapLiveEditor​​​​FancyBoot​​ ​​StyleBootstrap​​​​Lavish​​​​BootstrapThemeRol......
  • LTspice: Copy and Paste Between Schematics
    不得不说LTSpice真的是界面方面太不Friendly了,这个问题让我抓狂了一下午,不过最终还是再官网找到了答案关键的诀窍就是copy后不要点击左键然后直接点击另外一个原理图窗口......
  • bootstrap页面标题缩略图
    关于作者:郑云飞,程序员Java(web前端,web后端,oracle数据库ormysql数据库)本文主要来讲解以下内容:1.大屏幕介绍;2.页面标题;3.缩略图;4.警示框;5.Well;6.总结。大屏幕介绍轻量,灵活的......
  • bootstrap导航条
    关于作者:郑云飞,程序员Java(web前端,web后端,oracle数据库ormysql数据库)艺名:天放本文主要来讲解以下内容:1.默认的导航条;2.表单;3.按钮;4.文本;5.非导航的链接;6.组件对齐;7.固定在......
  • bootstrap输入框组
    关于作者:郑云飞,程序员Java(web前端,web后端,oracle数据库ormysql数据库)艺名:天放本文主要来讲解以下内容:1.基本案例;2.尺寸;3.复选框和单选框;4.附加按钮;5.带下拉菜单的按钮;6.分......
  • bootstrap之下拉菜单和按钮组
    关于作者:郑云飞,程序员Java(web前端,web后端,oracle数据库ormysql数据库)艺名:天放终于把前面关于BootstrapCSS部分简单的学习了一遍,应该忽视了比较多的细节问题。不过大部分......
  • 1751.maximum-number-of-events-that-can-be-attended-ii 最多可以参加的会议数目II
    问题描述1751.最多可以参加的会议数目II解题思路动态规划+二分法令dp[i][j]表示在前i个会议,最多参加j个会议,收获的最大价值:考虑选择不参加events[i-1],dp[i][j]=......
  • 1945.sum-of-digits-of-string-after-convert 字符串转化后的各位数字之和
    问题描述1945.字符串转化后的各位数字之和解题思路正常思路就好。代码classSolution{public:intgetLucky(strings,intk){vector<int>num;......