• 关于数组的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]
    
  • 相关阅读:
    CppUnit
    vconfig in linux
    POSIX semaphore: sem_open, sem_close, sem_post, sem_wait
    (Windows Command) diskpart
    亮块检测及取出亮块的中心坐标
    CacheMetaData Method of Activity
    (C#) Encoding.
    (C#) 线程操作 限制可同时访问某一资源或资源池的线程数。Semaphore 类。Mutex类
    (C# 基础) 跳转 (break, continue, goto, return, throw ).
    (C#基础) 字符串数据和操作
  • 原文地址:https://www.cnblogs.com/hou-yuan-zhen/p/12524956.html
Copyright © 2020-2023  润新知