zoukankan      html  css  js  c++  java
  • 关于数组的reduce方法:

    关于数组的reduce方法:

    定义:arr.reduce(function(pre,cur,index,arr){

    },init)

    其中:arr,表示原数组,pre表示上次回调时的返回值,或者初始值init,

    cur 表示当前正在处理的数组元素,

    index 表示当前正在处理的数组元素的索引,若提供init值,索引为0,不提供,索引值为1

    init 表示初始值

    1.使用reduce方法,数组去重
    let arr = [1,2,3,4,4,1]
    let newArr = arr.reduce((pre,cur) => {
    	if(!pre.includes(cur)){
    		return pre.concat(cur)
    	}else{
    		return pre
    	}
    },[])
    console.log(newArr) //  [1,2,3,4]
    

    2.使用reduce方法,将多维数组转化为一维数组
    let arr = [[0,1],[2,3],[4,[5,6]]]
    const newArr = function(arr) {
    
    	return arr.reduce((pre,cur) => {
    		pre.concat(Array.isArray(cur) ? newArr(cur) :cur)
    	},[])
    	//检测当前的元素是不是数组,如果是数组就再次调用newArr()函数,不是就直接拼接。[]表示返回     //的是一个数组类型,初始值是一个空数组
    }
    console.log(newArr())//[0,1,2,3,4,5,6]
    

    3.使用reduce方法,将对象数组求和
    let result = [
                {
                    subject: 'math',
                    score: 10
                },
                {
                    subject: 'chinese',
                    score: 20
                },
                {
                    subject: 'english',
                    score: 30
                }
            ];
    let score = result.reduce((pre,cur)=>{
    	return pre + cur.score
    },0)//为0表示返回的数字,初始值是0
    cosole.log(score)//60
    

    4.使用reduce方法,将二维数组,变成一维数组
    let arr = [[2,3],[4,5],[6,7]]
        let newArr = arr.reduce((pre,cur) => {
            return pre.concat(cur)
        },[])
        console.log(newArr)//[2,3,4,5,6,7]
    
  • 相关阅读:
    C# 设计模式
    FutureTask、Fork/Join、 BlockingQueue
    线程的几种创建方式
    行锁、表锁、乐观锁、悲观锁
    J.U.C之AQS
    同步容器并发容器
    线程不安全类
    线程封闭
    不可变对象
    安全发布对象—单例模式
  • 原文地址:https://www.cnblogs.com/hou-yuan-zhen/p/12524956.html
Copyright © 2011-2022 走看看