美文网首页前端面试
2019阿里前端面试题

2019阿里前端面试题

作者: catherine单眼皮小眼睛 | 来源:发表于2019-02-22 13:13 被阅读0次

干开发也有不少年头了,其实每个开发人员应该都有总结和写技术点的习惯,俗言说得好“好记性不如一个烂笔头”。 

我是一枚女程序猿,很少发文章,并且我深知这是不对的,不管好与坏分享出来大家一起讨论,总会把不好的变成好的,窄路变成宽路。哎,可能个人使然,但是发表出来的还是很少,都是在自己的工作笔记里每次记录着技术心得和一些总结。总觉得发表出来万一不好,被人取笑了怎么办。总之是一个爱多想的女程序员。

最近我以前一个同事在找工作,她面试了阿里,然后跟我聊了聊,说让我多发表自己的文章,建立自己的社区,最好再多参与一些开源项目或者在git上多建一些自己的项目。这话我以前也听过,但是就是执行上不彻底啊。

这不,我现在必须把自己以前写好的或者接下来的每一点技术总结也好 经验总结也好,都想写出来,就当不为别人看,为自己也行!

话不多说了,她给我发了一道她面试阿里的题。我自己做了做。这是我目前想到的思路和写法。欢迎有更好更优的方案发出来。我也可以学习。谢谢~

题目:

筛选笔试题 (请在半小时内完成):

var arr = [

   {name:'小米1', value: 1,  type: 2, date: '2018-06-07T08:00:01.589Z' },

   {name:'锤子T1', value: 1, type: 2, date: '2018-06-07T08:10:01.589Z' },

   {name:'小米2', value: 1, type: 4, date: '2018-06-07T20:00:01.589Z' },

   {name:'小米2', value: 4, type: 4, date: '2018-06-07T20:10:21.189Z' },

   {name:'小米4', value: 1, type: 4, date: '2018-06-07T08:00:01.560Z' },

   {name:'小米4', value: 2, type: 4, date: '2018-06-07T08:10:31.584Z' },

   {name:'小米6', value: 1, type: 3, date: '2018-06-07T08:00:01.589Z' },

   {name:'小米5s',value: 1, type: 4, date: '2018-06-07T08:00:01.589Z' },

   {name:'锤子T2', value: 1, type: 4, date: '2018-06-07T08:00:01.589Z' },

   {name:'锤子T1', value: 4, type: 4, date: '2018-06-07T08:06:01.589Z' },

   {name:'魅蓝note5', value: 1, type: 4, date: '2018-06-07T08:00:01.589Z' },

   {name:'魅蓝note2', value: 5, type: 4, date: '2018-06-02T08:07:01.589Z' },

   {name:'魅蓝note2', value: 6, type: 4, date: '2018-06-07T08:00:01.589Z' },

   {name:'魅蓝note3', value: 1, type: 4, date: '2018-06-05T08:00:01.589Z' },

   {name:'魅蓝note', value: 1, type: 4, date: '2018-06-07T08:00:01.589Z' },

   {name:'oppor9', value: 7, type: 4, date: '2018-06-04T08:04:01.588Z' },

   {name:'华为p9', value: 1, type: 4, date: '2018-06-02T08:00:01.577Z' },

   {name:'华为p9', value: 2, type: 4, date: '2018-06-07T08:00:01.110Z' },

   {name:'华为p10', value: 1, type: 1, date: '2018-06-07T08:00:01.534Z' }

];

/**

* 请用您认为最优化的方式,将arr中的type为4的数据过滤出来,

* 然后按相同的 name + date(按天)合并value(value累加),

* 然后按 value 降序(从大到小)排序,

* 最后每行按照 "${name},${本地日期},售出${sum(value)}部" 的格式,如:"小米2,2017年06月08日,售出5部", 打印(console.log)出来。

* 可以使用第三方js库,可以使用es6。

* 请在半小时内完成。

要求最后输出结果样例如下:

oppor9,2017年06月04日,售出7部

魅蓝note2,2017年06月07日,售出6部

魅蓝note2,2017年06月02日,售出5部

小米2,2017年06月08日,售出5部

......

*/

function printArray(arr){

}

我的解答:

function printArray(arr){

    const res = arr.filter(function(item, index, arr){

        item.date = item.date.split('T')[0]

        return item.type === 4

    })

    console.log(res)

    const newArr = []

    const temp = {}

    for(const i in res) {

        const key = `${res[i].name}@${res[i].date}`

        if (temp[key]) {

            temp[key] += res[i].value

        } else {

            temp[key] = res[i].value

        }

    }

    console.log(temp)

    for (const key in temp) {

        const tempObj = {}

        tempObj.name = key.split('@')[0]

        tempObj.date = key.split('@')[1]

        tempObj.value = temp[key]

        newArr.push(tempObj)

    }

    console.log(newArr)

    function compare(prop) {

        return function(a, b){

            const value1 = a[prop]

            const value2 = b[prop]

            return value2 - value1

        }

    }

    newArr.sort(compare('value'))

    console.log(newArr)

    newArr.forEach((item, index) => {

        const printStr = `${item.name},${item.date.split('-')[0]}年${item.date.split('-')[1]}月${item.date.split('-')[2]}日,售出${item.value}部`

        console.log(printStr)

    })

}

printArray(arr)

我有注意到时间那有点差异,题目数组里给的是2018,让最后打印出来是2017年,我自己觉得是打印错了。如果在现场我估计我会再问一下面试官这里是否不一样。如果真不一样,程序里在处理一下就行了

好了,此题完结。

相关文章

  • 2019前端面试题汇总(主要为Vue)

    摘要: 经典面试题。 原文:2019前端面试题汇总(主要为Vue) 作者:前端小酱 Fundebug经授权转载,版...

  • 2019前端面试题汇总(主要为Vue)

    摘要: 经典面试题。 原文:2019前端面试题汇总(主要为Vue) 作者:前端小酱 Fundebug经授权转载,版...

  • 面试阿里、网易、滴滴前端碰到的问题3

    继续阿里网易面试题1和2面试阿里、网易、滴滴前端碰到的问题1: http://www.jianshu.com/p/...

  • 面试题收集汇总

    title: 面试题积累date: 2019/09/16 21:30:25categories: 面试题 前端 面...

  • 阿里笔试复习

    阿里前端面试题 萌新突然接到阿里前端的内推,不想放弃这次机会,所以提交了简历,当晚接到了面试电话,周四进行笔试,但...

  • 前端面试题总结

    整理了一下2019年3月份参加的,阿里、腾讯、微软等大厂前端面试题和体验, 希望对打算换工作的同学有些帮助。 微软...

  • 2019阿里前端面试题

    干开发也有不少年头了,其实每个开发人员应该都有总结和写技术点的习惯,俗言说得好“好记性不如一个烂笔头”。 我是一枚...

  • Vue文档

    vue教程精简版 2019前端面试题 Vue管理后台框架选择推荐

  • PHPer 面试指南-扩展阅读资源整理

    前端篇 收集的前端面试题和答案 前端开发面试题 史上最全的web前端面试题汇总及答案 前端工程师手册 HTTP协议...

  • PHPer 面试指南-扩展阅读资源整理

    前端篇 收集的前端面试题和答案 前端开发面试题 史上最全的web前端面试题汇总及答案 前端工程师手册 HTTP协议...

网友评论

    本文标题:2019阿里前端面试题

    本文链接:https://www.haomeiwen.com/subject/yjteyqtx.html