JavaScript高级函数的使用

    技术2022-07-11  78

    循环 for(let i = 0 ; i<temp.length;i++){ return 原来的循环 } for(let i in temp){ return 快速拿到i } for(let item of temp){ return 快速拿到每项 上面是temp[i]去到每一项 } filter函数的使用 过滤操作 filter()括号里面的是回调函数 filter()中的回调函数有一个要求,必须返回一个boolean值 当返回true时,函数内部会将自动将这次回调的值加入新的数组中 当返回false时,函数内部会过滤掉这次的值 filter()最终返回的是满足条件的所有值 const num =[10,60,55,66,1,500,300,1] let numArr=num.filter(function (n) { //n是上面的每个值 return n<50 //return后面接的是判断条件 //例如 10<50? =>true 10加到新的数组里 6<50?=>false 不加到新的数组里 }) console.log(numArr) map函数的使用 如果想对数组中所有的函数进行操作,用map函数 const num =[10,60,1,500,300,1]; let newNums= num.map(function () { return n*2 //return 后面接的是操作 }) console.log(newNums); //[20,120,2,1000,600,2]

    3.reduce 对数组中所有的元素进行汇总

    const num =[10,60,1,500]; let temp = num.reduce(function (prevValue,n) { return prevValue+n },0) //回调函数后面 的数字 0 是初始值 也就是下面的第一个prevValue // prevValue 是上次返回的值 // 第一次 prevValuee是 0 n 是10 // 第二次 prevValue是 10 n 是60 // 第三次 prevValue是 70 n 是1 // 第四次 prevValue是 71 n 是500 因为数组中有四个元素 //最后一次 返回最后一次 571 另: //如果数组的值是对象 books:[{ id:1, price:20, count:1 },{ id:2, price:40, count:2 }] num.reduce(function (pre,book) { return pre+book.price*book.count },0)

    4.汇总

    把上面的连起来(除了另) const num =[10,60,1,500]; let temp = num.filter(function (n) { return n<10 }).map(function (n) { return n*2 }).reduce(function (prevValue,n) { return prevValue+n },0) 把上面的再简化一下(箭头函数) let temp =nums.filter(n=>n<100).map(n=>n*2).reduce((pre,n)=>pre+n)
    Processed: 0.009, SQL: 9