前端面试之数组去重

  var a=[1,2,3,4,4];
    var b=[];
    var c={};
//    方法一  indexOf属性 针对不存在元素会返回 -1  否则会返回字符的指定位置
//    for( i in a){
//        if(b.indexOf(a[i])==-1){
//            b.push(a[i])
//
//        }
//    }
//    方法二 创建空变量 通过判断变量是否存在 赋值给变量相应的boolean 值
    for(var i=0; i<a.length;i++){
        if(!c[a[i]]){
            c[a[i]]=true;
           b.push(a[i]);
        }

    }

    console.log(b);
时间: 2024-10-12 06:37:29

前端面试之数组去重的相关文章

前端面试必备:JS数组去重算法实现

之前一段时间一直在准备面试, 因而博客太久没更新: 现在基本知识点都复习完毕, 接下来就分享下 面试的一些常见问题: 去正规的互联网公司笔试.面试有很大的概率会碰到 使用javascript实现数组去重 的编码问题: 如:魅族笔试题: 本博文就js 如何实现数组去重整理出5种方法,并附上演示Demo 以及 源码.  1.遍历数组法   最简单的去重方法, 实现思路:新建一新数组,遍历传入数组,值不在新数组就放入该新数组中:注意点:判断值是否在数组的方法“indexOf”是ECMAScript5

前端面试高频题:删除数组重复元素的多种方法

最近在想着换工作,去了一家中关村的上市公司,面试官随便问了几个问题其中就提到了怎么删除数组元素的方法,表示这已经是第三次遇到了这个问题了,由于知识口头说说所以就随便说了下,之前用的时候都是直接找的方法库虽然知道大致是怎么写的但是还没有真正写过,网上的方法还是蛮多的这里也给大家分享一个作者写的吧,希望对初学者有所帮助: //数组去重的方法 Array.prototype.unique=function(){ //集中声明变量 var oldArr=this, newArr=[oldArr[0]],

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

数组去重是面试中经常问到的问题 [html] view plain copy var arr=[1,3,4,52,4,5,4,8,7,6]; 第一种方法:使用ES5中的indexOf进行去重: [javascript] view plain copy function arr1(){ var n=[]; for(var i=0;i<arr.length;i++){ if(n.indexOf(arr[i])==-1){ n.push(arr[i]); } } return n; }//先定义一个空

前端日常开发常用功能系列之数组去重

这是前端日常开发常用功能这个系列文章的第一篇,该系列是日常开发中一些常用的功能的再总结.再提炼,以防止遗忘,便于日后复习.该系列预计包含以下内容: 防抖.节流.去重.拷贝.最值.扁平.偏函数.柯里.惰性函数.递归.乱序.排序.注入.上传.下载.截图... 本文所记录的数组去重方法只针对一维数组,且数组项都是基本数据类型值 方法一: 二重循环比较去重(因为使用的是‘===’比较,适合数组项为数值.字符串的数组) const unique1 = arr => { const tempArr = ar

前端实现数组去重,如何高效快捷?

数组去重 1.双循环去重 双重for(或while)循环是比较笨拙的方法,它实现的原理很简单:先定义一个包含原始数组第一个元素的数组,然后遍历原始数组,将原始数组中的每个元素与新数组中的每个元素进行比对,如果不重复则添加到新数组中,最后返回新数组:因为它的时间复杂度是O(n^2),如果数组长度很大,那么将会非常耗费内存. function unique(arr) { if (!Array.isArray(arr)) { console.log('type error!') return } le

JavaScript数组去重方法及测试结果

最近看到一些人的去面试web前端,都说碰到过问JavaScript数组去重的问题,我也学习了一下做下总结. 实际上最有代表性也就三种方法:数组双重循环,对象哈希,排序后去重. 这三种方法我都做了性能测试,有兴趣的朋友可以去试试,这是测试地址 双重循环最慢(不是一般的慢),对象哈希是最快的,排序后去重根据浏览器不同比对象哈希慢2-3倍

数组去重和两个数组求交集

引言 今天在项目中一个功能要用到两个数组求交集的算法. 大概是这样: 两个表格分别用easyui datagrid实现,要把A表格的一列数据和B表格的一列数据取出来,然后去重,去重后求交集. 那么在计算出的交集中分别根据求出的数据选中两个表格的对应行. 故用到js数组去重和求交集. 交集 Array.prototype.intersect = function(b) { var flip = {}; var res = []; for(var i=0; i< b.length; i++) fli

前端面试中的常见的算法问题

虽说我们很多时候前端很少有机会接触到算法.大多都交互性的操作,然而从各大公司面试来看,算法依旧是考察的一方面.实际上学习数据结构与算法对于工程师去理解和分析问题都是有帮助的.如果将来当我们面对较为复杂的问题,这些基础知识的积累可以帮助我们更好的优化解决思路.下面罗列在前端面试中经常撞见的几个问题吧. Q1 判断一个单词是否是回文? 回文是指把相同的词汇或句子,在下文中调换位置或颠倒过来,产生首尾回环的情趣,叫做回文,也叫回环.比如 mamam redivider . 很多人拿到这样的题目非常容易

javascript实现数组去重

数组去重即去掉数组中重复的元素,是web前端工作者在面试过程中和工作中经常会遇到的一个问题,相信一般的方法大家都会,只不过会存在效率差异问题,下面我就来说说我们常用的几种数组去重的方法! 方法1,思路:通过双重循环,每次检测新数组里面是否有该元素,没有就加进去,改方法思路简单,但当数组长度较长时,会非常影响性能!(不推荐使用) function deleteRepeat1(arr) { var newArr = []; for (var i = 0; i < arr.length; i++) {