面试前端必须准备的一个问题:怎样去掉Javascript的Array的重复项。据我所知,百度、腾讯、盛大等都在面试里出过这个题目。 这个问题看起来简单,但是其实暗藏杀机。 考的不仅仅是实现这个功能,更能看出你对计算机程序执行的深入理解。方法一:利用splice直接在原数组进行操作双层循环,外层循环元素,内层循环时比较值值相同时,则删去这个值注意点:删除元素之后,需要将数组的长度也减1.Array.prototype.distinct = function ()...
方法一:双层循环,外层循环元素,内层循环时比较值如果有相同的值则跳过,不相同则push进数组Array.prototype.distinct = function(){var arr = this,result = [],i,j,len = arr.length;for(i = 0; i < len; i++){for(j = i + 1; j < len; j++){if(arr[i] === arr[j]){j = ++i;}}result.push(arr[i]);}return result; }var arra = [1,2,3,4,4,1,1,2,1,1,1]; arra.distinct(); //返回[3,4,2,1]方法二:利用splice直接在...
<!DOCTYPE html> <html><head><meta charset="UTF-8"><title></title></head><body></body><script type="text/javascript">var arr =[1,2,3,4,5,6,7,8,9,0,8,5,5,4,3];//创建一个数组function findInArr(arr,n){//循环数组中的每一项如果它的每一个i项与n相等就返回继续执行for (var i=0;i<arr.length;i++){if (arr[i] == n){return true;}}return false;}function removeDup(arr,s,e){ // 判断这个数组,的开始顺序,和这个数组是...
如何实现字符串去重?通常就是把字符串分割成数组,再对数组操作。 var str = "aabdeegdcffdsf",result = [],tempStr = "";var removeDuplicate = function ( str ){var arr = str.split();//把字符串分割成数组//arr.sort();//排序for(var i = 0; i < arr.length; i++){if(arr[i] !== tempStr){result.push(arr[i]);tempStr = arr[i];}else{continue;}}return result.join("");}console.log(removeDuplicate(str)); //abdegdcfd...
今天我就简单的来写点js数组去重,在这我总结了三种方法。第一种方法: 先定义一个临时数组,然后遍历当前的数组,如果当前数组的第i个元素,已经保存进了临时数组那么跳过这个元素;否则把当前的那一项添加到临时数组里面。 具体代码如下:var arr = [23,23,1,1,1235,123,123,1235,45,345,457,45245,234,2341,23]; Array.prototype.unique1 = function(){ var n = [];//定义一个新的临时数组 for(var i = 0; i <this.len...
这篇文章主要介绍了JS实现数组去重复值的方法,结合实例形式分析了JS通过数组遍历、运算等方法实现去重复值的操作技巧,需要的朋友可以参考下本文实例讲述了JS实现数组去重复值的方法。分享给大家供大家参考,具体如下:运行效果图如下:完整实例代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"...
这篇文章主要介绍了JS简单实现数组去重的方法,涉及javascript数组的遍历、判断及赋值操作,代码非常简单易懂,具有一定参考借鉴价值,需要的朋友可以参考下本文实例讲述了JS简单实现数组去重的方法。分享给大家供大家参考,具体如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <title>JS数组去重</title> <meta http-equiv="Content-Type" cont...
这篇文章主要介绍了JS实现数组去重复值的方法,结合实例形式分析了JS通过数组遍历、运算等方法实现去重复值的操作技巧,需要的朋友可以参考下本文实例讲述了JS实现数组去重复值的方法。分享给大家供大家参考,具体如下:运行效果图如下:完整实例代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"...
数组的判断在说如何进行数组的去重和拍平之前,先说一下怎么判断数组,因为要进行数组的处理当然要先判断下传过来的数据是不是数组。首先我们都知道js的数据类型只有5种,分别是Undefined、Null、Boolean、Number和String,数组只是一个对象,用typeof([])返回的结果知识一个Object的字符串,因此我们需要通过其他手段来判断它,这里就说两种方法。第一种用instenceof方法instanceof是ES5提供的一个方法,它可以用来判断实例是否是...
给定一个字符串,将它所有的全排列结果以数组的形式展示,要求没有重复的结果。举个例子:我有字符串”aabb”,它的全排列结果应该有4*3*2*1=24种,但是考虑到要求为没有重复,所以结果为6种,如下所示:[aabb, abab, abba, baab, baba, bbaa]所以问题的关键在于2个方面:1.如何求全排列2.如何对结果去重求全排列,既可以用递归,也可以用非递归方法。去重可以使用一个hash来达到目的。//递归求解全排列 function permutations(st...
本文实例讲述了javascript数组去重方法。分享给大家供大家参考,具体如下:方法一.思路:创建一个新的空数组,循环遍历旧数组,用indexOf()方法,可以取得元素在数组中的位置,如果值为-1表示不存在。那么新数组用indexOf去获取老数组的每一个元素,如果值为-1表示不存在,就把他push到新数组里,最后输出新数组即去重后的数组var arr=[24,56,74,89,24,56,78,09,24]; var new_arr=[]; for(var i=0;i<arr.length;i++){if(new_arr.in...
以下是我针对网上三种高效率方法总结与效率测试,如果大家有更好的意见或建议也可以提出,大家共勉学习。数组去重法1:Array.prototype.unique1 = function(){console.time("数组去重法1"); //记录开始执行的时间var arr = []; //创建一个临时数组var obj = {}; //创建一个空对象for(var i = 0; i < this.length; i++){ //遍历当前要去重的数组if(!obj[this[i]]){ //判断obj对象中是否存有当前项,没有则执行a...
去重方法总结 ①遍历空数组,indexOf方法 var n = []; //一个新的临时数组 for(var i = 0; i < arr.length; i++){//遍历空数组 if (n.indexOf(this[i]) == -1) { n.push(this[i]);// } } return n; ②也可以创空对象 var n = {}; for(var i=0;i< arr.length;i++)
Javascript 数组去重的四种方法四种算法来实现这个目的:第一种方法:Array.prototype.unique1 = function () {var n = []; //一个新的临时数组for (var i = 0; i < this.length; i++) //遍历当前数组{//如果当前数组的第i已经保存进了临时数组,那么跳过,//否则把当前项push到临时数组里面if (n.indexOf(this[i]) == -1) n.push(this[i]);}return n; } 第二种方法:Array.prototype.unique2 = function() {var n = {},r=[]; /...
JavaScript 数组去重经常出现在前端招聘的笔试题里,比如:有数组 var arr = [a, b, c, 1, 0, c, 1, , 1, 0],请用 JavaScript 实现去重函数 unqiue,使得 unique(arr) 返回 [a, b, c, 1, 0, 1, ]作为笔试题,考点有二:1. 正确。别小看这个考点,考虑到 JavaScript 经常要在浏览器上运行,在千姿百态的各种浏览器环境下要保障一个函数的正确性可不是一件简单的事,不信你继续读完这篇博客。2. 性能。虽然大部分情况下 JavaScript ...