阿里前端笔试题

题目一:
请完成“空白处”代码,使得以下组件在选择时能够将合适的值打印出来
class Counter extends React.Component {
	select(val) {
		console.log('you have select' + val);
	}
	render() {
		return (<ul>
           { 
               ['a','b','c'].map((item, index) => {
                   return <li onClick={___空白处___}>{item}</li>
               })
           }
       </ul>)
	}
}


题目二:
请实现find函数,使下列的代码调用正确。
约定:
title数据类型为String
userId为主键,数据类型为Number
var data = [
	{userId: 8, title: 'title1'},
	{userId: 11, title: 'other'},
	{userId: 15, title: null},
	{userId: 19, title: 'title2'}
];

var find = function(origin) {
	//your code are here...
}

//查找data中,符合条件的数据,并进行排序
var result = find(data).where({
	"title": /\d$/
}).orderBy('userId', 'desc');

console.log(result); // [{ userId: 19, title: 'title2'}, { userId: 8, title: 'title1' }];




题目三:
下面是一个redux中间件,补充“空白处”代码,使得dispatch支持action为函数作为返回值
  export default function() {
    return ({ dispatch, getState }) => next => action => {
      if (___空白处___) {
        return ___空白处___;
      }
      return next(action);
    };
  };



题目四:
为 Function 扩展一个通用的方法 bindX,可以实现如下功能
  function add(num1, num2) {
      return this.value + num1 + num2;
  }

  var data = {
      value: 1
  };

  var addEx = add.bindX(data, 2);

  addEx(3);    // 6






题目五:
有一个数组,里面只存在 * 和 字母,比如 [‘*’, ‘d’, ‘c’, ‘*’, ‘e’, ‘*’, ‘a’, ‘*‘]。现在需要把这个数组中的所有星号移动到左边,所有的字母移动到右边,所有字母的顺序不能改变。
var arr = ['*', 'd', 'c', '*', 'e', '*', 'a', '*'];

 function parse(arr){

 }

 console.log(parse(arr));


#内推##笔试题目##笔经##秋招##前端#
全部评论
回复一下第二题: const find = function (origin) {   // 代码写在这里...   let obj = new Object(origin);   Object.defineProperty(obj, "where", {     configurable: true, // 是否可配置     enumerable: false, // 是否可迭代     writable: false, // 是否可写     value: function (where) {       for (let key in where) {         if (where.hasOwnProperty(key)) {           obj = obj.filter((v) => where[key].test(v[key]));         }         return find(obj);       }     },   });   Object.defineProperty(obj, "orderBy", {     configurable: true, // 是否可配置     enumerable: false, // 是否可迭代     writable: false, // 是否可写     value: function (key, order) {       obj.sort((a, b) => {         if (order == "desc") {           return b[key] - a[key];         } else {           return a[key] - b[key];         }       });       return find(obj);     },   });   return obj; };
点赞 回复 分享
发布于 2021-09-03 23:00
不容易啊,终于把第二题搞出来了。有没有其他更好的思路啊? var find = function(origin) {     //your code are here...     return {         where: function(findObj) { //条件对象             const results = [];             let key = Object.keys(findObj);             let rexp = findObj[key];             origin.forEach((item, index) => {                 if (rexp.test(item[key])) {                     results.push(item);                 }             });             return {                 orderBy: function(key, order) {                     results.sort((item1, item2) => {                         if (order == 'desc&(8707)#39;) {                             return item2[key] - item1[key];                         } else {                             return item1[key] - item2[key];                         }                     })                     return results;                 }             }         }     } }
点赞 回复 分享
发布于 2020-07-18 16:08
感谢分享,做了一下第四题,分享一下。话说react,reduce都没看啊,第二题也没思路啊。 Function.prototype.bindX = function(data, ...outerArgs) {     let _this = this; //将add保存起来     return (...innerArgs) => {         return _this.call(data, ...outerArgs.concat(...innerArgs)); //将add的this指向data     } }
点赞 回复 分享
发布于 2020-07-18 15:00
是21届秋招笔试题吗?
点赞 回复 分享
发布于 2020-07-17 21:52
哪个部门啊,还要笔试?
点赞 回复 分享
发布于 2020-07-17 15:53

相关推荐

入职一年多作为一枚资历尚浅的过来人,想给大家分享一些关于盒马鲜生的体验,供大家参考。1.&nbsp;背靠阿里生态,起点高、资源广盒马作为阿里巴巴集团的新零售标杆,拥有强大的技术、数据与供应链支持。在这里,你能接触到行业前沿的数字化零售模式,参与重构“人、货、场”的创新实践,这种高起点是许多初创企业无法比拟的。2.&nbsp;全链路培养体系,成长路径清晰公司为应届生量身打造“全链路业务培训+定制化轮岗计划”,从前端用户运营到后端供应链管理,全方位夯实业务能力。我的亲身经历是:半年轮岗后,不仅能独立负责生鲜品类的用户需求洞察,还参与了仓配优化项目,快速蜕变为复合型人才。目标直指“前置仓站长”,独当一面的机会近在眼前。3.&nbsp;一线实战,结果导向,激励丰厚盒马注重“从用户中来,到用户中去”。入职后,你会深入一线直面消费者,解决真实需求,这种接地气的经历让理论迅速落地。公司推行“强结果激励”,业绩达标即可获得丰厚奖金,付出与回报直接挂钩,干劲十足!4.&nbsp;包容开放的招聘政策,机会多元不限应届生身份(毕业2年内均可投递),专业包容性强(物流、电商、食品等优先但不强制),尤其欢迎有学生干部、奖学金经历的同学。全国分配机制为愿意挑战的同学提供广阔舞台,无论一线城市还是新晋市场,都能找到适合自己的战场。写给应届生的心里话在盒马,我不仅学会了如何运营一个生鲜仓,更学会了用用户视角思考商业本质。公司对新人足够信任,只要你主动、有服务意识、愿意学习,就能快速脱颖而出。如果你渴望在高速发展的行业中积累扎实的零售经验,那么我非常推荐你选择!
点赞 评论 收藏
分享
评论
2
28
分享

创作者周榜

更多
牛客网
牛客企业服务