• 关于数组的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]
    
  • 相关阅读:
    BOM与DOM
    前端基础之JavaScript
    前端基础之css
    前端基础之HTML
    索引与慢查询优化
    视图、触发器、事务、存储过程、函数、流程控制
    pymysql模块
    mysql的基本查询语句及方法
    ie6 select选中问题
    offsetLeft
  • 原文地址:https://www.cnblogs.com/hou-yuan-zhen/p/12524956.html
Copyright © 2020-2023  润新知