为了账号安全,请及时绑定邮箱和手机立即绑定

柯里化函数、快速排序、外边距重叠

标签:
AngularJS


柯里化函数

柯里化函数通常也称为部分求值,其含义是给函数分步传递参数,每次传递参数后部分应用参数,并返回一个更具体的函数接受剩下的参数,这中间可嵌套多层这样的接受部分函数参数,直至返回最后结果。

例子:

实现carrying函数,完成以下需求,代码如下:

function sum(a,b,c){

return a+b+c;

}

function currying(fn){

     `//todo`(自己编写的代码)

}

var curring = curring(sum);

console.log(currying(sum,1,2,3)) //6

console.log(currying((1),(2),(3)) //6

console.log(currying((1,2),3)) //6

console.log(currying((),(1),(2),(3)) //6

console.log(currying(1,2,3)) //6

var currying = function (fn) {

var _args = [];

return function () {

if (arguments.length === 0) {

return fn.apply(this, _args);

}

Array.prototype.push.apply(_args, [].slice.call(arguments));

return arguments.callee;

}

};

        function sum(a,b,c){

            return a+b+c;

        }

快速排序

大致分三步:

1、找基准(一般是以中间项为基准)

2、遍历数组,小于基准的放在left,大于基准的放在right

3、递归

function quickSort(arr){

//如果数组<=1,则直接返回

if(arr.length<=1){return arr;}

var pivotIndex=Math.floor(arr.length/2);

//找基准,并把基准从原数组删除

var pivot=arr.splice(pivotIndex,1)[0];

//定义左右数组

var left=[];

var right=[];

//比基准小的放在left,比基准大的放在right

for(var i=0;i<arr.length;i++){

if(arr[i]<=pivot){

left.push(arr[i]);

}

else{

right.push(arr[i]);

}

}

//递归

return quickSort(left).concat([pivot],quickSort(right));

}

外边距重叠

外边距重叠失败盒子模型中的一个属性,在css当中,相邻的两个盒子的外边距可以结合成一个单独的外边距,这就是外边距重叠。

©著作权归作者所有:来自51CTO博客作者outsider96的原创作品,如需转载,请注明出处,否则将追究法律责任


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消