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

迅雷前端的两道题目还是可以做的!!!不过第二题我不知道为啥一直不能通过...我测试是可以完全通过的~跟大家交流一下~
//第一道 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

相关推荐

11-29 03:15
门头沟学院 Java
1.面试官自我介绍2.自我介绍+说项目的难点3.jwt是什么?怎么使用的?(项目用了)4.jwt的具体内容(只使用了后端返回的token,没了解具体内容是什么)5.flex:1是什么6.水平垂直居中方法7.布局方法用什么比较多?8.js的数据类型有哪些9.基本数据类型和引用类型有什么区别10.介绍栈,队列,堆,链表11.介绍闭包(要详细一点,所以把闭包的特征和使用的情况也说了12.介绍函数里的this13.手写call方法,一边写一边说思路(大概写出来了,有一点点小问题)14.promise和ajax有了解过吗?(ajax只了解了原生的,就详细介绍了一下promise的定义、几种状态、常用的不同方法)15.什么时候用promise.all?16.有没有了解过跨域问题?项目里有用到吗?(这里把同源策略说成不同域名才跨域了,面试官有指出是要端口、协议、域名都相同才同源)17.你说到了websocket,简单介绍一下,项目里有用到吗?(没用到,不过把概念和使用场景都说了)18.http1.0/http1.1/http2.0/http3.019.Cache-Control是用来做什么的?20.强缓存和弱缓存有哪些?21.项目里用了useTransition,其实这个在实际业务里用得不是很多,你是怎么想到要用这个的22.useTransition和useState有什么区别23.useCallback和useMemo有什么区别24.有没有用到自定义的hooks,项目里有用到吗,介绍一下25.项目里用了ISR和动态导入,ISR和SSR有什么区别26.怎么考虑用React和Next.js来做项目的?只是想巩固学过的知识还是有什么别的考虑?27.你想在实习过程中获得什么呢?28.代码题:旋转矩阵
查看27道真题和解析
点赞 评论 收藏
分享
评论
点赞
15
分享

创作者周榜

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