javascript面试题-原型实现数组去重

今天朋友去面试被问到一个问题,原型实现数组去重,乍一听着实有点蒙,但细细想来有些灵感

数组去重并不难,定义一个空数组,遍历要去重的数组的每一项,利用flag作为判断空数组中是否有一样的元素的标识,flag为true说明没有一样的,就添加到空数组中

利用原型实现,其实也就是在数组的原型上添加一个方法,让要去重的数组调用该方法

   Array.prototype.remArr=function () {    var arr=[];    var len=this.length;    for(var i=0;i<len;i++)    {        var flag=true        for(var j=0;j<arr.length;j++)        {            if(this[i]==arr[j]){                flag=false;            }        }        if(flag)        {            arr.push(this[i])        }    }    return arr}

console.log([1,2,3,3,2,1,5].remArr())
时间: 2024-08-16 01:16:33

javascript面试题-原型实现数组去重的相关文章

javaScript常见的五种数组去重(转载)

JavaScript的数组去重问题在许多面试中都会遇到,现在做个总结 先来建立一个数组 var arr = [1,2,3,3,2,'我','我',34,'我的',NaN,NaN]; ▓▓▓▓▓▓ 第一种 思路:建立一个临时数组,用for循环去依次判断arr中的每个项在临时数组中是否有相同的值,如果没有则将这个值添加到临时数组,如果有相同的值则不添加,最后返回这个临时数组 代码: 1 Array.prototype.removeDuplicate = function(){ 2 var n = [

javascript 笔试题之删除数组重复元素

笔试时紧张没写出来,静下心后发现简单的要死. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en"> <head> <meta http-equiv="Content-Type" content=&quo

纯数组去重

一般而言,数组最简单快捷的方法是直接利用HashSet的不重复的特性就可以做到,或者是遍历时利用List的contains 判断是否存在就可以去重了 如果是对象数组,对象的类需要 重写 equal 和 hashCode方法.. 但是面试题经常有数组去重的试题,如果在不使用hashSet 和 list的contains方法情况下,纯数组怎么去重? 可以这么做: 使用一个标识数组来标识重复的元素位置,再新建一个新的数组来存储去重后的元素 User user1 = new User("zjamgs&q

JavaScript 数组去重

JavaScript 数组去重 Why underscore (觉得这部分眼熟的可以直接跳到下一段了...) 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. 阅读一些著名框架类库的源码,就好像和一个个大师对话,你会学到很多.为什么是 underscore?最主要的原因是 underscore 简短精悍(约 1.5k 行),封装了 100 多个有用的方法,耦合度低,非常适合逐个方法阅读,适合楼主这样的 JavaScript

javaScript数组去重方法

在JAvascript平时项目开发中经常会用到数组去重的操作.这时候就要用到JS数组去重的方法了. demo1: 第一种:JS数组去重操作方法是利用遍历原数组,利用数组的indexOf()方法来来判断新数组b中是否有原数组a中的元素,如果没有的话则在b数组的后面追加上a[i],如果有的话就不执行任何操作,最后可以达到数组去重的操作. 这种方法应该是平时开发中最常用的JS数组去重的方法了,简单又实用. demo2: 第二种去重的方法比较巧妙,是定义一个空对象和一个空数组,在遍历原数组的时候来用原数

javascript数组去重算法-----4(另一种写法)

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>javascript数组去重算法-----3</title> 6 </head> 7 <body> 8 <script> 9 var arr = [1,1,2,2,3,2,2,3,3,1,1,4,4,5

JavaScript数组去重(转载)

转载自https://zhuanlan.zhihu.com/p/24753549 作者:TooBug 定义重复(相等) NaN 初看NaN时,很容易把它当成和null.undefined一样的独立数据类型.但其实,它是数字类型. console.log(typeof NaN); //number 根据规范,比较运算中只要有一个值为NaN,则比较结果为false,所以会有下面这些看起来略蛋疼的结论: // 全都是false 0 < NaN; 0 > NaN; 0 == NaN; 0 === Na

javascript数组去重算法-----4(另一种写法__2)

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>javascript数组去重算法-----3</title> 6 </head> 7 <body> 8 <script> 9 var arr = [1,1,2,2,3,2,2,3,3,1,1,4,4,5

javascript数组去重算法-----5

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>javascript数组去重算法-----3</title> 6 </head> 7 <body> 8 <script> 9 var arr = [1,1,2,2,3,2,2,3,3,1,1,4,4,5