数组去重是面试中经常问到的问题

[html] view plaincopy
  1. var arr=[1,3,4,52,4,5,4,8,7,6];
第一种方法:使用ES5中的indexOf进行去重:
[javascript] view plaincopy
  1. function arr1(){
  2. var n=[];
  3. for(var i=0;i<arr.length;i++){
  4. if(n.indexOf(arr[i])==-1){
  5. n.push(arr[i]);
  6. }
  7. }
  8. return n;
  9. }//先定义一个空数组,然后遍历数组,使用indexOf检查是否含有重复元素,如果没有则插入到n中。使用此类方法应考虑ES5的兼容性问题
[javascript] view plaincopy

运行结果如下:

第二种方法:先排序后然后再相邻比较去重
[javascript] view plaincopy
  1. function arr3(){
  2. arr.sort();
  3. var re=[arr[0]];
  4. for(var i=1;i<arr.length;i++){
  5. if(arr[i]!==re[re.length-1]){
  6. re.push(arr[i]);
  7. }
  8. }
  9. return re;
  10. }

此种方法比第一种效率更好:

第三种方法:使用map去重
[javascript] view plaincopy
  1. function arr4(arr){
  2. var map={};
  3. if(arr&&Array.isArray(arr)){
  4. for(var i=arr.length;i>=0;--i){
  5. if(arr[i] in map){
  6. arr.splice(arr[i],1);
  7. }else{
  8. map[arr[i]] = true;
  9. }
  10. }
  11. }
  12. return arr;
  13. }

效率最高:

转载于:https://www.cnblogs.com/codepen2010/p/6900218.html

数组去重是面试中经常问到的问题相关推荐

  1. 面试中常问的List去重问题,你都答对了吗?

    面试中经常被问到的list如何去重,用来考察你对list数据结构,以及相关方法的掌握,体现你的java基础学的是否牢固. 我们大家都知道,set集合的特点就是没有重复的元素.如果集合中的数据类型是基本 ...

  2. 去重 属性_面试中常问的List去重问题,你都答对了吗?

    面试中经常被问到的list如何去重,用来考察你对list数据结构,以及相关方法的掌握,体现你的java基础学的是否牢固. 我们大家都知道,set集合的特点就是没有重复的元素.如果集合中的数据类型是基本 ...

  3. java面试 设计模式_Java面试中常问到的设计模式

    面试中常问到的设计模式 什么是设计模式? ​设计模式是世界上各种各样程序员用来解决特定设计问题的尝试和测试的方法.设计模式是代码可用性的延伸 单例模式 ​保证被创建一次,节省系统开销 ​饿汉式:上来不 ...

  4. 大厂面试官在校招面试中爱问啥?

    如果你在简历中写了这句话,保证能拿到大厂面试机会:扎实的计算机基础,良好的数据结构与算法功底. 然后,你就会被问到头皮发麻. 虽然是段子,但也一定程度上说明了大厂非常注重计算机基础,也是真的喜欢问计算 ...

  5. java io bio nio面试题_漫画:一文学会面试中常问的 IO 问题!

    原标题:漫画:一文学会面试中常问的 IO 问题! 作者 | 漫话编程 责编 | 伍杏玲 本文经授权转载自漫话编程(ID:mhcoding) 周末午后,在家里面进行电话面试,我问了面试者几个关于IO的问 ...

  6. 面试中被问到婚育问题时要怎么回答呢?

    站在企业的角度想,企业既然想出钱招人,肯定是人手不足,需要快速补充人员运转工作,所以,企业在招聘时就要判断在未来一段时间内,你是否有能力和精力跟企业并肩作战.问这个问题,就是为了了解你是否有能力平衡工 ...

  7. 几道 BAT 算法面试中经常问的「字符串」问题

    https://www.toutiao.com/a6675839856192520711/ String 作为最常见的编程语言类型之一,在算法面试中出现的频率极高. 1. 验证回文串 题目来源于 Le ...

  8. 面试中常问的TOPK

    前言:本文将介绍随机选择,分治法,减治法的思想,以及TopK问题优化的来龙去脉,原理与细节,保证有收获. 面试中,TopK,是问得比较多的几个问题之一,到底有几种方法,这些方案里蕴含的优化思路究竟是怎 ...

  9. post大小限制_作为一个程序员,面试中常问的get和post的区别,你真的知道吗

    作为一个程序员无论是搞前端的还是搞后端的,只要问起来GET和POST的区别,都能说出来个一二三四来. 你可能自己写过无数个GET和POST请求,或者也看过很多权威网站总结出来的区别,你非常清楚的知道什 ...

最新文章

  1. java调用PageOffice生成word
  2. aFleX脚本常见错误
  3. Indigo | Indigo(Python)简介、安装与入门
  4. 驰骋工作流引擎设计系列05 启动流程设计
  5. 【计算理论】计算理论总结 ( 正则表达式转为非确定性有限自动机 NFA | 示例 ) ★★
  6. Mongodb副本集配置
  7. 服务器里怎么更改网站图片大小,php实现在服务器端调整图片大小的方法
  8. iOS多任务:suspend VS terminate
  9. Java运算符及录入
  10. 给定一个数组,将所有的元素在一行里打印出来,中间以逗号分开
  11. Python文档学习笔记(1)--使用Python 解释器
  12. 中国省份城市列表(汉字+拼音)
  13. java中怎么判断字符串的长度_java怎么判断字符串的字符串的长度
  14. 极简WEB文件管理工具(群晖)——TinyManager
  15. 数据分析师年薪50w起 人才缺口极大
  16. python语言的特点-Python语言的特点有哪些?
  17. 使用Java输出所有水仙花数
  18. 无人机配聚合路由器提供应急网络保障
  19. ideaskin软件下载_AC/DC_Highway To HellLRC动态歌词下载 - 一听音乐网
  20. 交互设计是什么:一篇文章推开交互设计的大门

热门文章

  1. 归算法及经典递归例子代码实现
  2. 无向图——双连通分量
  3. Android 通过 annotation ViewInject
  4. c++经典书籍--深度探索C++对象模型
  5. golang中的strings.ToTitle
  6. golang的select
  7. mysql无法解析方程式索引
  8. APROM、LDROM的区别!(flash)
  9. Zephyr内核到1.5版本的改进
  10. Xshell利用Xftp传输文件,使用pure-ftpd搭建ftp服务