网站首页 行业供求 行业产品 行业公司
行业资讯 行业网站 链接交换 网友收藏
行业资讯 >> 资讯展示:

天津web前端培训学校,JS数组去重,面试必备

时间:2018-10-31   类别: 行业动态
天津web前端培训学校,跃过JS的龙门,你就是真正的锦鲤
小J:明天要去面前端了……瑟瑟发抖.jpg
小S:快复习JS!面试必考啊!

web前端面试中,JS相关问题算得上是重头戏。当前环境下,初级前端很多很多,公司都不缺,缺少的是中级前端。中级前端对JavaScript的要求可谓是必备,对JS的掌握程度是公司判断应聘者能力水平的重要依据之一,可能一道js面试题就决定了你的去留。

而JS面试常见问题之一:数组去重(因为工作中贼常用,你说不会行么?)。

如何用JavaScript进行数组去重?可以用哪些方法完成?各种去重方法的优劣如何?
小筑为大家总结了几种数组去重的方法,欢迎小伙伴一起来讨论切磋。



方法一:遍历数组法
var arr = [4, 1, 2, 3, 3, 6, 5];
function elDup1(array) {
var orr = [];
for(var i = 0; i < array.length; i++) {
if(orr.indexOf(array[i]) == -1) {
orr.push(array[i]);
}
}
return orr;
}
var brr = elDup1(arr);
console.log(brr);

思路:这个方法只需要解析orr.indexOf(array[i]==-1)即可,遍历数组array,如果orr中元素array[i]的索引为-1(代表orr中没有元素array[i]),把这个元素放进新数组,得到的也是新的去重数组,然后返回这个新数组就可以了。

特点:简单易理解,js引擎在实现这个方法的时,会遍历数组直到找到目标为止。正因为遍历数组,故当数据过多会导致执行较慢。



方法二:先排序后去重
var arr = [4, 1, 2, 3, 3, 6, 5];
function elDup2(arr) {
arr.sort();
var orr = [arr[0]];
for(var i = 1; i < arr.length; i++) {
//前一个与后一个是否相同,不相同则添加到对应的orr数组中
arr[i] !== orr[orr.length - 1] && orr.push(arr[i]);
}
return orr;
}
var brr = elDup2(arr);
console.log(brr);

思路:将待去重数组进行排序(用sort()函数实现),采用循环判断,判断元素i和元素i的下一个是否相等,不相同就把元素i放进新数组。因为已经排序,所以重复元素会在相邻位置,如果不相同,则将该元素存入结果数组中。

特点:使用了原生的JS先将数组排序后比较,比上一种方法少了一次遍历,有更高的效率。


方法三:对象键值表法
var arr = [4, 1, 2, 3, 3, 6, 5];
function elDup3(arr) {
var orr = [],obj = {}, j = arr.length;
for(var i = 0; i < j; i++) {
if(!obj[arr[i]]) {
orr.push(arr[i]);
obj[arr[i]] = 1;
}
}
return orr;
}
var brr = elDup3(arr);
console.log(brr);

思路:遍历当前数组中每个元素,同时创建一个对象和一个结果数组,把已经出现过的通过下标的形式存入一个对象内,

特点:因为引用下标,比用index Of搜节省时间。但是多了hash表,内存占用多,这就是所谓的空间换时间。

以上三种方法希望可以帮到大家,如果有更好的方法,欢迎在下面留言讨论!

资讯来源:诚筑说  
友情提示:
    信息由用户自行发布,采用请谨慎,我们鼓励您当面交易。如有不符合法规或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们。名站在线只为传递信息,我们不做任何双方证明,也不承担任何法律责任。 信息转载,请标明来源于www.fwol.cn ,谢谢。

其它相似链接:
1FT6105-8SB71-1AA0 物超所值
corporatename福州卓凯电子科技有限公司person叶经理 联系手机18060815105QQ号879520885 一、公司简介 福州卓凯电子科技有限公司是一家全球贸易合作伙伴。公司通过多年的努力,已在锅炉控制、化工、水泥、水处理、造纸印刷、制药机械、起重、食品饮料、环保、冶金、激光加工机床、金属切削机床及专用机床等多个行业积累了丰厚的控制系统解决方案,是一家集科、工、贸于一体的综合性自动化公司。公司下设有贸易部、工程项目部。贸...

IC200TBX210 质优价美
corporatename福州卓凯电子科技有限公司person叶经理 联系手机18060815105QQ号879520885 一、公司简介 福州卓凯电子科技有限公司是一家全球贸易合作伙伴。公司通过多年的努力,已在锅炉控制、化工、水泥、水处理、造纸印刷、制药机械、起重、食品饮料、环保、冶金、激光加工机床、金属切削机床及专用机床等多个行业积累了丰厚的控制系统解决方案,是一家集科、工、贸于一体的综合性自动化公司。公司下设有贸易部、工程项目部。贸...

IC200TBX214 质优价美
corporatename福州卓凯电子科技有限公司person叶经理 联系手机18060815105QQ号879520885 一、公司简介 福州卓凯电子科技有限公司是一家全球贸易合作伙伴。公司通过多年的努力,已在锅炉控制、化工、水泥、水处理、造纸印刷、制药机械、起重、食品饮料、环保、冶金、激光加工机床、金属切削机床及专用机床等多个行业积累了丰厚的控制系统解决方案,是一家集科、工、贸于一体的综合性自动化公司。公司下设有贸易部、工程项目部。贸...

什么样的发际线好看
发际线对一个人的面部轮廓起着至关重要的作用,不论是发际线过高还是发际线过低都会严重影响面部轮廓的整体感觉,只有标准的发际线才能很好的把脸型衬托出来。那么,好看的发际线到底是什么样呢?什么形状的发际线**看? 男生做什么样的发际线好看 男生的发际线**以M型或者三角形的发际线为主,这可给人一种十分阳刚和正直的印象。具体确定种植发际线方案的时候,还是**以医生根据脸型的设计为主,植发者不要过度追求某一...

IC200TBX220 质优价美
corporatename福州卓凯电子科技有限公司person叶经理 联系手机18060815105QQ号879520885 一、公司简介 福州卓凯电子科技有限公司是一家全球贸易合作伙伴。公司通过多年的努力,已在锅炉控制、化工、水泥、水处理、造纸印刷、制药机械、起重、食品饮料、环保、冶金、激光加工机床、金属切削机床及专用机床等多个行业积累了丰厚的控制系统解决方案,是一家集科、工、贸于一体的综合性自动化公司。公司下设有贸易部、工程项目部。贸...


相关评论:
(欢迎网友发表评论,请注意网络文明)
(不支持 HTML 显示,请勿发HTML代码)
(评论需审核后才能显示)

本站推荐:
不锈管
湖北合力专用汽车
湖南长沙活动板房
四川成都中国青年旅行社官
萍乡市房产管理局 - 萍
搜趣旅游网--旅游行业垂
大型工业风扇保养|工业大
9347—精英家教网—
行业人脉-中国汽车行业人
观音灵签29签 赵子龙救
兰州全钢防静电地板_甘肃
航天科技馆装饰苏州哪里有
**惠的**的道路标牌、
江苏专业的冷油器生产厂家
目字扣F-002
脉冲单机布袋除尘器是若雨
KXB127型隔爆语言声
膨胀型阻火模块膨胀型防火
上海亿富自动化设备有限公
湖北省立秀怀远研学旅行有
3HAC025982-0
水泥杆和电线杆规格以及安
哪里有万州烤鱼培训
安全的油式模温机
深圳海尔洗衣机维修清洗
慢性肠炎会传给下一代吗?

电脑版

Copyright 2005-2024 名站在线[fwol.cn]版权所有
经营许可证:粤ICP备17047754号