迅雷前端的两道编程题题目

迅雷前端的两道题目还是可以做的!!!不过第二题我不知道为啥一直不能通过...我测试是可以完全通过的~跟大家交流一下~
//第一道 EventEmitter类
class EventEmitter {
on(event, fn) {
this._callbacks = this._callbacks || {};
(this._callbacks['$' + event] = this._callbacks['$' + event] || []).push(fn);
return this;
}
once(event, fn) {
function on() {
this.remove(event, on);
fn.apply(this, arguments);
}
on.fn = fn;
this.on(event, on);
return this;
}
remove(event, fn) {
this._callbacks = this._callbacks || {};
if (0 == arguments.length) {
this._callbacks = {};
return this;
}
var callbacks = this._callbacks['$' + event];
if (!callbacks) return this;
if (1 == arguments.length) {
delete this._callbacks['$' + event];
return this;
}
var cb;
for (var i = 0; i < callbacks.length; i++) {
cb = callbacks[i];
if (cb === fn || cb.fn === fn) {
callbacks.splice(i, 1);
break;
}
}
return this;
}
emit(event) {
this._callbacks = this._callbacks || {};
var args = [].slice.call(arguments, 1),
callbacks = this._callbacks['$' + event];
if (callbacks) {
callbacks = callbacks.slice(0);
for (var i = 0, len = callbacks.length; i < len; ++i) {
callbacks[i].apply(this, args);
}
}
return this;
}
}
//第二道 学生排序
function sortStudents(obj1, obj2) {
if (obj1["class"] === obj2["class"]) {
var val1 = obj1["score"];
var val2 = obj2["score"];
if (val1 < val2) {
return 1;
} else if (val1 > val2) {
return -1;
} else {
return 0;
}
} else if(obj1['class'] === obj2['class'] && obj1["score"] === obj2["score"]){
return 0;
} else {
var val1 = obj1["class"];
var val2 = obj2["class"];
if (val1 < val2) {
return -1;
} else if (val1 > val2) {
return 1;
} else {
return 0;
}
}
}
var arr = [{ "name": "张三", "class": 2, "score": 64 }, { "name": "李四", "class": 1, "score": 80 }, { "name": "王五", "class": 1, "score": 80 }, { "name": "赵六", "class": 4, "score": 94 }];
console.log(arr.sort(sortStudents));

#前端##迅雷##笔试题目##题解#
全部评论
请问你第一题是100%正确吗?我跟你思路差不多,总是卡在83%
点赞 回复 分享
发布于 2018-09-13 09:22
第一题 https://github.com/anotherso1a/xunlei
点赞 回复 分享
发布于 2018-09-12 21:37
用JSON.stringify就过了
点赞 回复 分享
发布于 2018-09-12 21:06
function studSort(jsonobj) {                 jsonobj.sort(function(a, b) {                     return b.score - a.score                 })                 jsonobj.sort(function(a, b) {                     return a.class - b.class;                 })                 return JSON.stringify(jsonobj)             }
点赞 回复 分享
发布于 2018-09-12 21:05
第二题需要转换json格式 看样例输出
点赞 回复 分享
发布于 2018-09-12 20:55
好多犯同样错误的同胞
点赞 回复 分享
发布于 2018-09-12 20:53
哈哈哈第二题没加JSON.stringfy()
点赞 回复 分享
发布于 2018-09-12 20:52
我第二道也一直不能通过
点赞 回复 分享
发布于 2018-09-12 20:52

相关推荐

一、&nbsp;项目相关问题关于“身份识别与访问系统”项目:请介绍一下这个项目和你负责的内容。这个项目是个人完成还是团队协作?项目的性质是什么?(如:课程项目、科研训练项目?)项目是给学校用的还是个人练手项目?关于“校园社交平台”项目:项目中“MySQL自增ID结合xxx实现平台ID生成方案”的具体实现是怎样的?这个自增ID是如何获取的?是否有专门用于生成ID的表?ID存储在哪里?具体获取ID的流程是什么?(是否是插入数据后获取返回的ID?)二、&nbsp;技术深度问题缓存与数据库一致性:详细说明在点赞评论场景下,如何实现99%的缓存数据库一致性。对于点赞这种高频更新的场景,先写数据库再删缓存的策略是否会导致缓存失效?如何优化?如果引入锁机制(如间隙锁)来保证强一致性,请详细解释间隙锁的原理、定义和作用范围。分布式锁:如何保证分布式锁操作的原子性?是否有实际使用Lua脚本的经验?(针对锁的原子释放)是否了解Redlock算法?它在Redis集群中是如何工作的?是否了解Redis集群本身的一致性机制?MySQL底层原理:MySQL索引的底层实现是什么?请讲解一下对B+树的理解。B+树的非叶子节点存储什么?在聚簇索引和非聚簇索引中,叶子节点和非叶子节点存储的内容有何不同?请解释一下MVCC(多版本并发控制)的原理。Go语言核心:你使用Go语言有多久了?请讲解一下Go的GMP调度模型。当一个Goroutine发生I/O阻塞时,M(机器线程)和P(逻辑处理器)是如何进行调度的?
查看24道真题和解析
点赞 评论 收藏
分享
评论
点赞
16
分享

创作者周榜

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