美文网首页
js数组reduce方法的妙用

js数组reduce方法的妙用

作者: 变量只提升声明不提升赋值 | 来源:发表于2021-02-19 16:12 被阅读0次

reduce是一个异常强大的数组方法。他可以遍历数组并且记录上一个元素的值。
具体的语法如下

reduce方法接收两个参数。
第一个参数是一个函数。这个函数接收两个参数。第一个参数为上一次遍历的元素的值,第二个参数为当前要遍历的元素的值
第二个参数是一个任意基本类型的值,代表着默认的初始值,即第一次遍历的时候的初始值,如果不传这个参数,则默认是数组的第一个元素

 function arrfun(total, lastItem) {
            return total 
        }
 let sum = list.reduce(arrfun)

数组求和

        let list = [1, 24, 30, 5, 7, 12]

        function arrfun(total, lastItem) {
            return total += lastItem
        }
        let sum = list.reduce(arrfun)
        console.log(sum)

数组去重

这里给第二个参数指定了一个空数组,即total第一次是一个空数组。用来存储最终去重后的数据
        let list2 = [1, 2, 2, 3, 4, 5, 5]
        let sum2 = list2.reduce((total, item) => {
            if (total.indexOf(item) == -1) {
                total.push(item)
            }
            return total
        }, [])
        console.log(sum2)

求数组中最大值

        let list3 = [1, 24, 30, 5, 7, 12]
        let sum3 = list3.reduce((total, item) => {
            return total = total <= item ? item : total
        })
        console.log(sum3)

合并去重数组

        let list4 = [1, 5, 23, 44]
        let list5 = [1, 2, 3, 4]
        let sum4 = [...list4, ...list5].reduce((total, item) => {
            if (total.indexOf(item) == -1) {
                total.push(item)
            }
            return total
        }, [])
        console.log(sum4)

相关文章

网友评论

      本文标题:js数组reduce方法的妙用

      本文链接:https://www.haomeiwen.com/subject/hqlktltx.html