您的位置:首页 > 其它

2017阿里校招笔试小记

2016-09-07 21:12 162 查看
今天刚笔试完阿里,哎,整个人都不好。题量不多,11道题,6道选择题,4到编程题,1道问答题。

在笔试的前2天,刚笔试过京东和腾讯模拟,他们的前端开发岗位的笔试题和其他技术类题目范围差不过,离不开数据结构算法,操作系统和计算机网络,当然前端的知识也会考到,但是都比较基础。而阿里的前端笔试都是围绕前端开发岗位进行出题的,题目很有深度,比如下面我贴出其中的两道题目。哎,,考完的第一感觉,果然阿里大前端就是不一样,也怪自己太菜,起步太晚,没有去研究过前端各知识块一些比较底层的东西,很多东西往往就会用就过了。所以,想进BAT这样大公司,没有过于常人的学习态度是不行的。不过感慨也没用,还不如从现在起,好好埋头苦干一番,不然对不起‘’搞技术‘’这三个字。阿里,我们社招再见。。。


题目一:

实现函数,类似jquery链式调用什么鬼。。

var origin = [
{id:1,title:'title1'},
{id:2,title:'abcd'},
{id:3,title:'title2'},
{id:4,title:'efg'}
];

var find = function(data){
// your code here
}

var result = find(origin).where({'title':/\d$/}).order('id','desc'); //desc 非递增
console.log(result);  //  [{id:3,title:'title2'},{id:1,title:'title1'}]


题目二:

类似让你实现目前一些主流框架的循环渲染:

// ali-for
var items = [
{name:'item1'},
{name:'item2'}
];
var str = '<div ali-for="item in items">{{item.name}}<div>';

var ParseDom = function(str){
// your code here
}

// 对应生成的dom
// <div>item1</div>
// <div>item2</div>


哪位前端大大,留言下解题思路,。。。


对于第一题多谢几位大神的帮助,想在给出两种方法:

第一题方法一:

var find = function(data){
// your code here

Array.prototype.where = function(obj){
return this.filter(function(el){
return obj.title.test(el.title);
});
}

Array.prototype.order = function(s1,s2){
if(s2==='desc'){
return this.sort(function(e1,e2){
return e2[s1]-e1[s1];
});
}
}

return data;
}

方法二:
var find = function(data){
// your code here

this.data = data;

this.where = function(obj){
var key = Object.keys(obj),
val = obj[key];
this.data = this.data.filter(function(el){
return val.test(el[key]);
});

return this;
}

this.order = function(s1,s2){
return this.data.sort(function(a,b){
if(s2 === 'desc'){
return b[s1]-a[s1];
}
})
}

return {
data: this.data,
where: this.where,
order: this.order
};
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: