2017阿里校招笔试小记

今天刚笔试完阿里,哎,整个人都不好。题量不多,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
	};
}



评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值