当前位置: 首页 > Web前端 > HTML

Functioncurryingadd(1)(2)(3)手写扁平化数组二分查找

时间:2023-03-28 12:44:13 HTML

Functioncurrying就是接收一个函数A作为参数,运行后返回一个新的函数B。新函数B可以处理函数A的剩余参数functionadd(...args){returnargs.reduce((pre,curr)=>pre+curr)}functioncurry(fn){letargs=[]return函数c(...newargs){if(newargs.length){args=[...args,...newargs]返回args}else{让val=fn.apply(this,args)args=[]返回val}}}letaddc=curry(add)addc(1)(2)(3)手写平面数组constarr=[1,[2,3,[4,5]]]functionnewFlat(arr){returnarr.reduce((pre,curr)=>pre.concat(Array.isArray(curr)?newFlat(curr):curr),[])}二分搜索函数midSearch(nums,target){letleft=0,right=nums.length-1while(left<=right){letmid=Math.floor((right-left)/2)+leftletmidNum=nums[mid]if(num===target){returnmid}elseif(num>target){right=mid-1}else{left=mid+1}}return-1}