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

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

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

相关推荐

昨天 09:08
裁应届生,一分钱补偿没有,离职了还脑控你,跟踪你,定位你,丁东服务是搞系每一个人
牛客吹哨人:建议细说...哨哥晚点统一更新到黑名单:不要重蹈覆辙!25届毁意向毁约裁员黑名单https://www.nowcoder.com/discuss/1317104
叮咚买菜稳定性 9人发布 投递叮咚买菜等公司10个岗位 >
点赞 评论 收藏
分享
dongsheng66:如果想进大厂的话,在校经历没必要占这么大篇幅,可以把专业技能单独放一个专栏写,可以加个项目经历
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务