// 回调函数的参数fn(preview,current,index,arr){ // 第一个参数是前一个值 // 第二个参数是当前值 // 第三个参数是当前元素索引 // 第四个参数是引用的数组}let arr = [2 ,4 ,5,3,1]let result = arr.reduce((preview, current) => { return preview + current})console.log(result) //15上面的代码用于计算数组的总和。reduce方法之传入了匿名函数,函数只接收两个参数,分别是前一个值preview,当前值current。当reduce方法没有传入第二个参数时,第一次循环的前一个值为数组的第一项,当前值则为数组的第二项。。函数返回的是preview
let arr = [2 ,4 ,5,3,1]let result = arr.reduce((preview, current) => { console.log('前一个值:' + preview) console.log('当前值是:' + current) return preview + current})console.log(result)// 前一个值:2// 当前值是:4(第一次循环)// 前一个值:6// 当前值是:5(第二次循环)// 前一个值:11// 当前值是:3(第三次循环)// 前一个值:14// 当前值是:1(第四次循环)// 15(最终返回的值)let arr = [2 ,4 ,5,3,1]let result = arr.reduce((preview, current) => { console.log('前一个值:' + preview) console.log('当前值是:' + current) return preview + current}, 10)console.log(result)// 前一个值:10// 当前值是:2(第一次循环)// 前一个值:12// 当前值是:4(第二次循环)// 前一个值:16// 当前值是:5(第三次循环)// 前一个值:21// 当前值是:3(第四次循环)// 前一个值:24// 当前值是:1(第五次循环)// 25(最终返回的值)上面的代码reruce方法传入两个参数,此时前一个值为第二个参数的值,当前值为数组的第一项
let arr = [1, 2, 3, 4, 5]let result = arr.reduce((preview,current) => { return preview + current})console.log(recult) // 15let arr = [1, 2, 3, 4, 5, 2, 2, 3, 4]let result = arr.reduce((preview,current) => { if(!preview.includes(current)){ preview.push(current) } return preview}, [])console.log(result) // [1, 2, 3, 4, 5]let arr = [1, 2, 3, 4, 5, 2, 2, 3, 4]let result = arr.reduce((preview,current) => { console.log('前一个值:' + preview) console.log('当前值是:' + current) if(preview[current] !== undefined){ preview[current] ++ } else { preview[current] = 1 } return preview}, {})console.log(result)原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。