摘要:介绍方法接收一个函数作为累加器为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数初始值上一次回调的返回值,当前元素值,当前索引,原数组。
介绍reduce
reduce() 方法接收一个函数作为累加器,reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(上一次回调的返回值),当前元素值,当前索引,原数组。
语法:arr.reduce(callback,[initialValue])
callback:函数中包含四个参数 - previousValue (上一次调用回调返回的值,或者是提供的初始值(initialValue)) - currentValue (数组中当前被处理的元素) - index (当前元素在数组中的索引) - array (调用的数组) initialValue (作为第一次调用 callback 的第一个参数。)简单应用
const arr = [1, 2, 3, 4, 5] const sum = arr.reduce((pre, item) => { return pre + item }, 0) console.log(sum) // 15案例 根据对象里面的某一项属性分类,如下效果所示:
let arr = [{index:0},{index:0},{index:1},{index:2},{index:2}]; let res = arr.reduce((pre,item)=>{ let temp = []; pre.forEach((val)=>{ if(val&&val.length) { if(val[0].index==item.index) { val.push(item); return pre; } } }) temp.push(item); pre.push(temp); return pre; },[]);结果如下: 不使用reduce实现上述需求:
groupBy(array, f) { let groups = {}; array.forEach(function(o) { let group = JSON.stringify(f(o)); groups[group] = groups[group] || []; groups[group].push(o); }); return Object.keys(groups).map(function(group) { return groups[group]; }); }; let sorted = this.groupBy(this.arr, function(item){ return [item.index]; //根据对象里面的每一项的index分类 });
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/106568.html
摘要:一语法其中,表示将要原数组表示上一次调用回调时的返回值,或者初始值表示当前正在处理的数组元素表示当前正在处理的数组元素的索引,若提供值,则索引为,否则索引为表示初始值。 一、语法 arr.reduce(function(prev,cur,index,arr){...}, init); 其中,arr 表示将要原数组;prev 表示上一次调用回调时的返回值,或者初始值 init;cur 表...
摘要:在讲述之前,我们看看之前传统的架构以及在前端中的一些问题继而思考带来的改变。按照官方的描述,其中和体现了它的作用。实践我们通过一个非常简单的计数器来梳理的数据流。 Flux概述 Flux是Facebook用来构建用户端的Web应用程序的体系架构,与其它形式化的框架相比,它更像是一个架构思想,用于管理和控制应用中数据的流向。这里应用中的数据指包括但不限于来自服务端的数据页面中view的一...
摘要:作为目前最火的模式实现之一,它有很多的点值得研究。这个函数既然要用于,也就是说它接收一个形式为的函数,对其一层层嵌套形式为。这个会在开始时发起一个,并在这个时发起另一个成功或失败的。为了方便起见,会返回这个让调用者可以等待。 Redux作为目前最火的Flux模式实现之一,它有很多的点值得研究。今天我们首先来看看它的Middleware。 熟悉Express或者koa的朋友对Middle...
阅读 1546·2021-10-14 09:42
阅读 3785·2021-09-07 09:59
阅读 1269·2019-08-30 15:55
阅读 547·2019-08-30 11:17
阅读 3303·2019-08-29 16:06
阅读 451·2019-08-29 14:06
阅读 3088·2019-08-28 18:14
阅读 3605·2019-08-26 13:55