腾讯笔试遇到的一道题,百思不得其解,求助大牛们解答

实现一个 HardMan:
HardMan("jack") 输出:
I am jack

HardMan("jack").rest(10).learn("computer") 输出
I am jack
//等待10秒
Start learning after 10 seconds
Learning computer

HardMan("jack").restFirst(5).learn("chinese") 输出
//等待5秒
Start learning after 5 seconds
I am jack
Learning chinese

我的答案:
function HardMan(name){
var fucntionTarget = '';
this.rest = function(minnus){
var timer = setInterval(function(){
console.log("Start learning after "+ minnus +" seconds");
console.log('Learning '+fucntionTarget);
clearInterval(timer);
},minnus*1000);
return this;
};
this.learn = function(target)
{
fucntionTarget = target;

};
this.restFirst = function(minnus){
        这个不会写。

};
console.log('I am '+ name);
return this;
}
#腾讯#
全部评论
function hardMan(str) { this.queue = [] this.name = str this.queue.push(() => { console.log(this.name); this.next() }); } hardMan.prototype.rest = function (wait) { const func = () => { setTimeout(() => { console.log(`Start learning after ${wait} seconds`) this.next() }, wait * 1000) } this.queue.push(func) return this } hardMan.prototype.restFirst = function (wait) { const func = () => { setTimeout(() => { console.log(`Start learning after ${wait} seconds`) this.next() }, wait * 1000) } this.queue.unshift(func) return this } hardMan.prototype.learn = function (str) { const func = () => { console.log(`Learning ${str}`) } this.queue.push(func) this.next() } hardMan.prototype.next = function () { if (this.queue.length === 0) return const func = this.queue.shift() func() } const HardMan = (name)=>{ return new hardMan("jack"); }
4 回复 分享
发布于 2023-08-09 17:56 北京
class HardMan {constructor(name) {this.name = name;this.taskQueue = Promise.resolve();//考察执行栈和事件循环 setTimeout(() => {this.execute();})}execute() {if (this._restFirst) {this.realRest(this._restFirst);this._restFirst = 0;}this.outName();if (this._rest) {this.realRest(this._rest)}if (this._learn) {this.taskQueue = this.taskQueue.then(() => {console.log(`Learning ${this._learn}`)});}}outName() {this.taskQueue = this.taskQueue.then(() => {console.log(`I am ${this.name}`)});return this;}rest(seconds) {this._rest = seconds;return this;}realRest(seconds) {this.taskQueue = this.taskQueue.then(() => { return new Promise(resolve => {setTimeout(() => {console.log(`After rest ${seconds} seconds`);resolve();}, seconds * 10);});});return this;}restFirst(seconds) {this._restFirst = seconds;return this;}learn(subject) {this._learn = subject;return this;}}
1 回复 分享
发布于 2024-04-17 22:35 湖南
function Hard(str){     var that = {};     that.__proto__ = arguments.callee.prototype ;     that.str = "I am " + str;     setTimeout(that.settime.bind(that));     return that; } Hard.prototype.yanchi = function(m){     console.log("sleep")     var d = new Date();     var n = this._restFirst*1000;     for(var i = 0; i < d; i++){         if( new Date() - d > n ){             console.log("sleep end")             return false;         }     } } Hard.prototype.learn = function( sr ) {     this._learn = sr;     return this; } Hard.prototype.rest = function( num ){     this._rest = num;     return this; } Hard.prototype.restFirst = function ( n ) {     this._restFirst = n;     this._rest = 0;     return this; } Hard.prototype.settime = function(){     var { str, _learn, _rest, _restFirst} = this;     var num = _rest || _restFirst;     if( _restFirst !== undefined ){         this.yanchi();     }else{         console.log(str);     }     if(num){         setTimeout(function(){             console.log( `Start learning after ${ num } seconds` );             if( _restFirst !== undefined ){                 console.log(str);             }             if( _learn ){                 console.log( "Learning " + _learn )             }         },_rest*1000)     } }
1 回复 分享
发布于 2018-04-18 23:28
去年腾讯面试遇到了这道题,当时没写出来,后来想了想写出来了,给大家两个种满分解题代码吧:https://mp.weixin.qq.com/s/-hEjxY0yI6ZBTzAlc3xwAw
点赞 回复 分享
发布于 2024-08-23 09:50 广东
跟lazyman一摸一样的呀
点赞 回复 分享
发布于 2018-04-18 23:31
微信小程序事业群的
点赞 回复 分享
发布于 2018-04-17 23:03
哪个事业群的面试题
点赞 回复 分享
发布于 2018-04-17 10:43

相关推荐

之前技术面过了约的主管面,虽然这次面试官也稍微迟到了一下,但是还能接受,不像上次那个压力面,再次鞭尸他,还给我发offer了,在武汉(最近出的事是不是真的啊,反正不打算接了),这次主管面纯聊天面啊嘻嘻1、开局说之前的技术面面试官对我评价挺好的相信我的技术能力,所以今天不问技术(但是我觉得其实我面成了粑粑,第一个有点规模的厂的面试也是第三次面试)2、面试官的自我介绍和目前组内的业务基本介绍(like,like,主要是react+ts的低代码)3、自我介绍(由于是主管面我觉得可能更看综合能力就把校内职务奖项技术栈项目等都阐述了一下)4、实习时间5、个人的优缺点(肯定吹自己能力和抗压吃苦耐劳啊,缺点只能说自己是油专双非了呜呜呜)6、问实习想学到什么,对公司团队的期望(公司业务恰好和我下一步想学的契合上了)7、聊到了技术方面面试官直接批了我的简历上项目说管理系统类似的没有多少技术含量(哭了,能被我和后端十来天搓出来的确实没啥技术含量,加点性能优化吹一吹不得了了)8、反问:目前的公司业务产品,给我介绍了目前他们做得三个产品,全是低代码啊(途中还介绍了用到的技术和我目前可以做得出来的部分)介绍也很细致9、反问:刚刚的产品全是react+ts的吗?我用vue做过类似的拖拽低代码。现在大部分公司都是react啊以后Vuer还是得转战react感悟:投了一周多简历了,大部分厂根本不看大二的,还有就是react+一个有含金量的管理系统或者小程序+一个低代码这种有技术含量项目组合的简历好投进去啊,面几家厂80%都是react,当然不是说Vue不行毕竟我也是Vue,只是说我面下来感觉大一点的厂都是大部分react,所以还是得学react做个项目当敲门砖(菜鸡的感悟不必理会,如果Vue大佬看到别骂我,Vue学好一点面大厂也是没问题的,其实面试问框架也没有特别特别多了)总结:今天面试体验很好的,面试官表达了想要我,约了明天的终面(是人力的面,一般会有什么问题啊求求牛友帮帮我),公司目前的业务虽然不契合我现在的技术但是刚好是我接下来准备学的技术和做的项目只不过base有点远消费还挺高,今天的面试也没啥有技术含量的分享了,只能祝愿大家早日oc(我也想oc)ps:大佬勿喷,有错评论区评论速改
查看6道真题和解析
点赞 评论 收藏
分享
评论
3
13
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务