合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
## map ``` const myMap = function(arr, cb) { // 检查参数 let res = [] for(var i in arr){ if(arr.hasOwnProperty(i)){ res.push(cb(arr[i], i, arr)) } } return res } ``` ## Filter ``` myFilter = function(arr, cb) { // 检查参数 let res = [] for(var i in arr){ if(arr.hasOwnProperty(i) && cb(arr\[i\], i, arr)){ res.push(arr\[i\]) } } return res } ``` ## reduce ``` // 有初始值 // prev 是init的值 // cur 是数组第一项 arr.reduce((prev, cur, index, arr) => {}, init) // 没有初始值 // prev 是数组第一项 // cur 是数组第二项 arr.reduce((prev, cur, index, arr) => {}) ``` ### 作用 * 数组求和,求乘积 * 数组扁平化 ``` var a = [1,2,[3,3],[4,[2,3, [5,6]]]] const newArr = function(arr) { return arr.reduce((prev, cur) => { return Array.isArray(cur) ? prev.concat(newArr(cur)) : prev.concat(cur) }, []) } ``` * 计算数组中每个元素出现的次数 ``` var arr = [1,2,3,2,3,4] arr.reduce((prev, cur) => { if(cur in prev ){ prev[cur] += 1 }else{ prev[cur] = 1 } return prev }, {}) ``` * 数组去重 ``` var a = [1,2,3,3,4,2,3] a.reduce((prev, cur) => { return prev.includes(cur) ? prev : prev.concat(cur) }, []) ```