BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java-script / #2340同步于 2017/6/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
JavaScript机器人发帖

两道js笔试题,求大神解答下。

findtheright
2017/6/26镜像同步22 回复
1. 题目如下: 0 1 2 3 4 5 6 7 8 9 _ _ _ _ _ _ _ _ _ _ 请将第二排填上数字,使得第二排每一位数字是对应的第一排数字的次数,并编码实现。 2. 实现一个 HardMan: HardMan("jack") 输出: I am jack HardMan("jack").learn("computer") 输出 I am jack Learning computer 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
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
findtheright机器人#1 · 2017/6/26
第一题我是这样答的,但是错了,不知道错在哪里。 function count(arr){ var result = []; for (var i = 0; i < arr.length; i++){ var count = 0; var copy = arr.slice(0); var current = arr[i]; while (copy.indexOf(current) != -1){ count ++; copy.splice(copy.indexOf(current),1); } result += count + " "; } console.log(result); }
AriesKean机器人#2 · 2017/6/27
对应第一排数字的次数.....是什么意思?
dcy0701机器人#3 · 2017/6/27
``` function Lazyman(name) { let init = () => console.log('HI! this is ' + name) this.task = [init] setTimeout(() => { !(async function() { for (let index of Array(this.task.length).keys()) { await (this.task[index])() } }.bind(this))() }) } Lazyman.prototype = { constructor: Lazyman, eat(food) { this.task.push(function() { console.log('eat ' + food) }) return this }, sleep(second) { let fn = async function() { console.log("Wake up after " + second + "s!") await new Promise(resolve => setTimeout(resolve, second * 1000)) } this.task.push(fn) return this }, sleepFirst(second) { let fn = async function() { console.log("sleepFirst Wake up after " + second + "s!") await new Promise(resolve => setTimeout(resolve, second * 1000)) } this.task.unshift(fn) return this } } new Lazyman('kodo').sleep(3).eat('b').sleepFirst(2).sleep(4).eat('c') ```
moonpather机器人#4 · 2017/7/1
js的对象可以直接当做java的map来做,所以其实第一题很简单 var map={}; for(var i=0;i<arr.length;i++){ if(map[arr[i]]!=null){ map[arr[i]]++ }else{ map[arr[i]]=1; } } for(var i=0;i<arr.length;i++){ console.log(map[arr[i]]+" "); }
stevesasuke机器人#5 · 2017/7/1
## 第一题 ```js const arr1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 5, 4, 3, 2, 1, 2] const arr2 = arr1.map(x => arr1.filter(y => x === y).length) console.log(arr2.join(' ')) ``` ## 第二题 ```js const HardMan = (name) => { class HardMan { constructor (name) { this.tasks = [this.init(name)] setTimeout(async () => { for (const task of this.tasks) { await task() } }, 0) } init (name) { return () => console.log(`I am ${name}`) } sleep (time) { return () => new Promise( resolve => setTimeout( () => resolve(console.log(`Start learning after ${time} seconds`)), time * 1000, ) ) } rest (time) { this.tasks.push(this.sleep(time)) return this } restFirst (time) { this.tasks.unshift(this.sleep(time)) return this } learn (sth) { this.tasks.push(() => console.log(`Learning ${sth}`)) return this } } return new HardMan(name) } ```
findtheright机器人#6 · 2017/7/3
【 在 dcy0701 的大作中提到: 】 : [md] : ``` : function Lazyman(name) { : ................... 非常感谢
findtheright机器人#7 · 2017/7/3
【 在 stevesasuke 的大作中提到: 】 : [md] : ## 第一题 : ```js : ................... 非常感谢
ytyr2008机器人#8 · 2017/7/4
哇。。第一题我完全理解偏了,我以为要构造10个数作为第二排数,第二排数的每个数字代表第一排数字在第二排数字里出现的次数。构造出来是6 2 1 0 0 0 1 0 0 0。即在第二排数字里出现了6个0,2个1,1个2,0个3,0个4,0个5,1个6,0个7,0个8,0个9。完全想多了[ema1]
YuaNs机器人#9 · 2017/7/4
膜拜楼上大神们