资讯专栏INFORMATION COLUMN

CVTE2109春招笔试第一场前端编程题

yimo / 1081人阅读

摘要:题目大概意思给定两个维度不确定的数组,求它们之间不重复的数据合集返回一个新数组备在当时的题目,并没有说明数组中数据的准确类型,本次采用了字符串和数值混合的数据来测试如给定返回本次需要考虑的问题数组降维因为数组的维度是不确定的,我们需要做的是

题目大概意思:给定两个维度不确定的数组,求它们之间不重复的数据合集,返回一个新数组
(备:在当时的题目,并没有说明数组中数据的准确类型,本次采用了字符串和数值混合的数据来测试)
如给定:
arr1 = [11, 25, 44, [52, 44, 23], "52"]
arr2 = [16, 25, 17, [11, 25, [23, 18]]]
返回:[52, "52", 16, 17, 18]

本次需要考虑的问题:
1、数组降维
因为数组的维度是不确定的,我们需要做的是把两个数组都转换成一维数组。
在ES6中,提供了这么一个方法

Array.prototype.flat()

在数组的层次不确定时,可以使用Infinity关键字作为参数,即:

Array.prototype.flat(Infinity)

2、使用对象来判断数据出现的次数
本次需要的数据是:两个数组合并后只出现一次的数据,这里我想到的是采用对象的键值对方法,但是由于普通对象的键是字符串类型,对于数组中同时出现字符串和数值类型则无法判断,所以我采用Map集合来存储数据,Map集合是ES6提供的一个完整的hash结构,键可以是任意类型

代码如下:

function fn(arr1, arr2){
    let map = new Map();
    let res = [];
    let arr = arr1.flat(Infinity).concat(arr2.flat(Infinity));
    arr.forEach(ele => {
        map.has(ele) ? map.set(ele, false) : map.set(ele, true)
    });
    for(let [key, val] of map.entries()){
        if(val){
            res.push(key);
        }
    }
    return res;
}

测试代码:

let arr1 = [11, 25, 44, [52, 44, 23], "52"];
let arr2 = [16, 25, 17, [11, 25, [23, 18]]];
console.log(fn(arr1, arr2));

结果:

[52, "52", 16, 17, 18]

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/101972.html

相关文章

  • 记录一下自己的春招,唯品会、360、京东offer已收、腾讯offer_call已达!!!

    摘要:春招结果五月份了,春招已经接近尾声,因为到了周五晚上刚好有空,所以简单地记录一下自己的春招过程。我的春招从二月初一直持续到四月底,截止今天,已经斩获唯品会电商前端研发部大数据与威胁分析事业部京东精锐暑假实习生的腾讯的是早上打过来的。 春招结果 五月份了,春招已经接近尾声,因为到了周五晚上刚好有空,所以简单地记录一下自己的春招过程。我的春招从二月初一直持续到四月底,截止今天,已经斩获唯品...

    freewolf 评论0 收藏1
  • 2019春招前端实习面经总结

    摘要:春招前端实习面试记录从就开始渐渐的进行复习,月末开始面试,到现在四月中旬基本宣告结束。上海爱乐奇一面盒模型除之外的面向对象语言继承因为是视频面试,只记得这么多,只感觉考察的面很广,前端后端移动端都问了,某方面也有深度。 春招前端实习面试记录(2019.3 ~ 2019.5) 从2019.1就开始渐渐的进行复习,2月末开始面试,到现在四月中旬基本宣告结束。在3月和4月经历了无数次失败,沮...

    atinosun 评论0 收藏0
  • CVTE2019春招前端二面凉经

    摘要:在函数中通过赋予变量,在函数中,指向定时器以及回调函数当不需要或者时,定时器没有被,定时器的回调函数以及内部依赖的变量都不能被回收,造成内存泄漏。比如使用了定时器,需要在中做对应销毁处理。 前言: 3月5日,从中山去往广州,一大早7点多就做好准备了,在高铁站了30分钟,转广州地铁又站了90分钟,去到地铁口,就有一辆cvte的大巴车过来接送,我选择的面试时间是11:00-12:00,但前...

    ningwang 评论0 收藏0
  • CVTE2019春招前端二面凉经

    摘要:在函数中通过赋予变量,在函数中,指向定时器以及回调函数当不需要或者时,定时器没有被,定时器的回调函数以及内部依赖的变量都不能被回收,造成内存泄漏。比如使用了定时器,需要在中做对应销毁处理。 前言: 3月5日,从中山去往广州,一大早7点多就做好准备了,在高铁站了30分钟,转广州地铁又站了90分钟,去到地铁口,就有一辆cvte的大巴车过来接送,我选择的面试时间是11:00-12:00,但前...

    zhangwang 评论0 收藏0
  • 我的春招求职经验分享(已拿阿里京东网易等 5 个 offer)

    摘要:面经因为我完全没有面试经验,从来没有经历过面试,于是想着在去这类大公司面试之前先找成都的小公司练练手,积累点面试经验。于是三月份开始就有成都的小公司开始约我面试。 前序 从我高考成绩出来那一刻开始,从我在高考志愿上填上计算机科学与技术这几个当时在心中堪称神圣的几个字开始,我就已经把进入中国互联网最高殿堂BAT作为我整个大学奋斗的目标,哪怕我就读的是一所位于内陆的双非一本大学我也认为我能...

    Winer 评论0 收藏1

发表评论

0条评论

最新活动
阅读需要支付1元查看
<