迅雷前端

写的不太好,不过还是都AC了

第一题修改Bind函数

var self = null
Function.prototype.bind = function() {
    if (self == null){
        self = this
    }
    var context = [].shift.call(arguments),
        args = [].slice.call(arguments);
    return function() { 
        return self.apply(context, [].concat.call(args, [].slice.call(arguments))); 
    }
};

评论区 @ququququc 第一题的解决方案,这个更好

Function.prototype.bind = function () {
    var self = this.self || this,
        context = [].shift.call(arguments),
        args = [].slice.call(arguments),
        res = function () {
            return self.apply(context, [].concat.call(args, [].slice.call(arguments)));
        }
    res.self = this
    return res
};

第二题后缀

String.prototype.getSuffixList = function (suffix) {
    var result = "",
        strs = this.split(" "),
        LEN = strs.length,
        map = {},
        res;
    for (var i = LEN - 1; i >= 0; i--) {
        res = strs[i].indexOf(suffix);
        if (res != -1) {
            if (strs[i] in map) {
                map[strs[i]]++
            } else {
                map[strs[i]] = 1
            }
        }
    }
    var keys = Object.keys(map).sort(function (a, b) { return map[b] - map[a] });
    for (var j = 0; j < keys.length; j++) {
        result += keys[j] + "=" + map[keys[j]] + ","
    }
    return result.substring(0, result.length - 1);//字符串
};
#迅雷##前端工程师#
全部评论
楼主 那个self为啥用的是全局变量~我好像和你不同的只有这个地方~但是我是0 https://www.nowcoder.com/discuss/44545
1 回复 分享
发布于 2017-09-19 20:55
第二题跟你写的差不多,测试用例自己也都过了,但是就是0%,可能是什么原因
点赞 回复 分享
发布于 2017-09-19 20:35
难受
点赞 回复 分享
发布于 2017-09-19 20:40
第一个bind函数写的还是很棒的,赞!
点赞 回复 分享
发布于 2017-09-19 20:47
迅雷前端不是昨天就考了吗
点赞 回复 分享
发布于 2017-09-19 20:54
迅雷前端我昨天考的是什么情况
点赞 回复 分享
发布于 2017-09-19 20:58
self不能设置成全局的- -。。。假如说两个函数分别bind的话,你的self永远绑的第一个。
点赞 回复 分享
发布于 2017-09-19 21:09
楼主写的好棒,给你打call
点赞 回复 分享
发布于 2017-09-19 21:53

相关推荐

01-02 21:17
已编辑
西安理工大学 后端
程序员小白条:项目不太重要,你的优势的算法竞赛,然后多背相关的八股文,项目可以不作为重点考虑,面试可能就简单带过项目就行了,你可以直接写简历,背项目相关的八股文就行,也不用自己做,时间紧张的情况下,性价比最高
点赞 评论 收藏
分享
评论
点赞
11
分享

创作者周榜

更多
牛客网
牛客企业服务