es6 reduce的用法

一、forEach
回调函数参数,item(数组元素)、index(序列)、arr(数组本身)
循环数组,无返回值,不改变原数组
不支持return操作输出,return只用于控制循环是否跳出当前循环

二、includes
判断数组是否包含某个元素,不用return,不用回调函数,返回布尔值

三、filter
使用return操作输出,会循环数组每一项,并在回调函数中操作
返回满足条件的元素组成的数组,不改变原数组

四、map
输出的是return什么就输出什么新数组
原数组被“映射”成对应新数组,返回新数组,不改变原数组

五、find
用来查找目标元素,找到就返回该元素,找不到返回undefined
输出的是一旦判断为true则跳出循环输出符合条件的数组元素

六、some
返回布尔值,遇到满足条件变跳出循环

七、every
返回布尔值,遇到不满足条件跳出循环

八、reduce
累加器,输出的是return叠加什么就输出什么
回调函数参数四个
pre: 初始值(之后为上一操作的结果)
cur: 当前元素之
index: 当前索引
arr: 数组本身
主要有以下几种用法:
1.数组求和
[1,2,3,4].reduce((pre, cur) => pre + cur)//10
2.二维数组转为一维数组
[[1, 2], [3, 4], [5, 6]].reduce(( acc, cur ) => [...acc, ...cur], [])//[1, 2, 3, 4, 5, 6]
3.计算数组中每个元素出现的次数
const arraySum = (arr, val) => arr.reduce((acc, cur) => {
return cur == val ? acc + 1 : acc + 0
}, 0);
let arr = [1, 2, 3, 4, 5];
arraySum(arr, 0) //3
4.代替filter和map的组合
const characters = [
{ name: ‘ironman‘, env: ‘marvel‘ },
{ name: ‘black_widow‘, env: ‘marvel‘ },
{ name: ‘wonder_woman‘, env: ‘dc_comics‘ },
];

console.log(
characters
.filter(character => character.env === ‘marvel‘)
.map(character => Object.assign({}, character, { alsoSeenIn: [‘Avengers‘] }))
);
// [
// { name: ‘ironman‘, env: ‘marvel‘, alsoSeenIn: [‘Avengers‘] },
// { name: ‘black_widow‘, env: ‘marvel‘, alsoSeenIn: [‘Avengers‘] }
// ]

console.log(
characters
.reduce((acc, character) => {
return character.env === ‘marvel‘
? acc.concat(Object.assign({}, character, { alsoSeenIn: [‘Avengers‘] }))
: acc;
}, [])
)
// [
// { name: ‘ironman‘, env: ‘marvel‘, alsoSeenIn: [‘Avengers‘] },
// { name: ‘black_widow‘, env: ‘marvel‘, alsoSeenIn: [‘Avengers‘] }
// ]

参考:
1.https://blog.csdn.net/kingan123/article/details/79818566
2.https://juejin.im/post/5b8d0a74f265da431d0e7ec0
3.https://www.cnblogs.com/cckui/p/9267542.html

原文地址:https://www.cnblogs.com/bear-blogs/p/10127536.html

时间: 2024-07-31 00:17:30

es6 reduce的用法的相关文章

廖雪峰教程笔记:js中map和reduce的用法

举例说明,比如我们有一个函数f(x)=x2,要把这个函数作用在一个数组[1, 2, 3, 4, 5, 6, 7, 8, 9]上,就可以用map实现如下: 由于map()方法定义在JavaScript的Array中,我们调用Array的map()方法,传入我们自己的函数,就得到了一个新的Array作为结果: function pow(x) { return x * x; } var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.map(pow); // [1, 4,

浅谈JS中 reduce() 的用法

过去有很长一段时间,我一直很难理解 reduce() 这个方法的具体用法,平时也很少用到它.事实上,如果你能真正了解它的话,其实在很多地方我们都可以用得上,那么今天我们就来简单聊聊JS中 reduce() 的用法. 一.语法 arr.reduce(function(prev,cur,index,arr){ ... }, init); 其中, arr 表示原数组: prev 表示上一次调用回调时的返回值,或者初始值 init; cur 表示当前正在处理的数组元素: index 表示当前正在处理的数

es6重要内容用法

ES6 一.ECMA历史 组成部分: ECMA.DOM.BOM 什么是ECMA?全称 ECMAScript 简写 ECMA 或 ES ECMA是一个标准,JS是实现 例如: HTML5 是标准,chrome,FF,IE10是实现 将来也可能有 xxxscript 实现ECMA 目前的版本: 低级浏览器: 主要支持es3.1,3.2 高级浏览器: 正从ES5过度到ES6 版本进化过程 1996 ES1.0 js稳定 Netscape将js提交给ECMA组织 1998 ES2.0 正式发布 1999

ES6 Promise的用法(摘抄)

Promise是一个构造函数,自己身上有all.reject.resolve这几个眼熟的方法,原型上有then.catch等同样很眼熟的方法. 那就new一个 var p = new Promise(function(resolve, reject){    //做一些异步操作    setTimeout(function(){        console.log('执行完成');        resolve('随便什么数据');    }, 2000);}); Promise的构造函数接收

ES6之Promise用法详解

一 前言 本文主要对ES6的Promise进行一些入门级的介绍.要想学习一个知识点,肯定是从三个方面出发,what.why.how.下面就跟着我一步步学习吧~ 二 什么是Promise 首先是what.那么什么是Promise呢? 以下是MDN对Promise的定义 The Promise object is used for asynchronous computations. A Promise represents a single asynchronous operation that

匿名函数与内置函数filter()、map()、reduce()的用法

首先是一个正常的函数,能够正常的传参数 def sayhi(n): print(n) sayhi(3) 匿名函数传参数: (lambda n:print(n)) (2) calc=lambda n:print(n) calc(6) #处理三元运算符 calc=lambda n:3 if n<4 else n print(calc(1)) 注:lambda里面不能处理for循环之类的复杂运算 lambda单独使用的不多,需要结合使用 例如:结合filter()函数 filter()函数:一组数据里

js数组高阶方法reduce经典用法代码分享

以下是个人在工作中收藏总结的一些关于javascript数组方法reduce的相关代码片段,后续遇到其他使用这个函数的场景,将会陆续添加,这里作为备忘. javascript数组那么多方法,为什么我要单挑reduce方法,一个原因是我对这个方法掌握不够,不能够用到随心所欲.另一个方面,我也感觉到了这个方法的庞大魅力,在许多的场景中发挥着神奇的作用. 理解reduce函数 reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值. a

ES6 promise的用法

function runAsync(){ var p = new Promise(function(resolve, reject){ //做一些异步操作 setTimeout(function(){ console.log('执行完成'); resolve('随便什么数据'); }, 2000); }); return p; } runAsync() 接下来调用runAsync()方法 runAsync().then((res)=>{ console.log(res); // res:随便什么

ES6 Set的用法

类型转换 Array // Array 转 Set var mySet = new Set(["value1", "value2", "value3"]); // 用...操作符,将 Set 转 Array var myArray = [...mySet]; String // String 转 Set var mySet = new Set('hello');  // Set {'h', 'e', 'l', 'l', 'o'} // 注:Set