数组去重算法

数组去重,首先要明确数组里边每一项的数据门类,如果是同部类的数据,那就会容易很多了,最头疼的仍是碰到数组里有对象的景况。下部分为3种状况来兑现吧。

(一)数组内元素都是同一数据类型,比如都是number,string,array,但不存在Object类型元素的情况

function clear(arr) {

var temp = {},

result = [];

for (var i = 0; i < arr.length; i++) {

if (!temp[arr[i]]) {

result.push(arr[i]);

temp[arr[i]] = true;

}

}

return result;

}

这边的做法是新建一个temp对象,遍历数组,每遍历一次给对象temp平添一个属性,属性名是给数组那一项的值,再给它的属性值设为true,下一次遍历的时分碰到这个属性对应的属性值为true时,则代表数组中预先有雷同的数据。

(二)数组中的元素不是同一数据类型,但不存在Object类型元素的情况

function clear2(arr) {

var temp = {},

result = [];

for (var i in arr) { /*i为arr的index,不是具体的值,如果是对象,则为对象的属性名*/

if (!temp[typeof(arr[i]) + arr[i]]) {

result.push(arr[i]); //给对象temp中增添属性名叫arr[i]的门类和arr[i]值的属性,防止搞混

temp[typeof(arr[i]) + arr[i]] = true;

}

}

return result;

}

这个和上头的差别是,给对象增添属性的属性名除去数组的值还加上的部类

(三) 数组中存在Object类型元素的情况,暂不考虑。

时间: 2024-10-25 07:26:34

数组去重算法的相关文章

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数组去重算法-----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

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

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数组去重算法-----2

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>javascript数组去重算法-----2</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数组去重算法-----1

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

js数组去重算法

来来来 ,整理完数组排序 ,咱们再来看看数组去重 .这个可以说有很多方式了 .之前看过的算法方式太多 ,导致思路其实有时候真的很受限,不过也是整理来学习用的 ,如有雷同 ,纯属巧合啊 ,小婊贝们~ 首先呢 ,我们来看看思路比较直接的方法,基本思路就是声明一个新数组arr_n,将[0]这个成员压入arr;然后从[1]开始循环当前数组,设置一个变量a,给他一个初始值1:内层嵌套从[0]对arr_n数组的循环 ,用外层对当前数组循环的当前项this[i]和arr_n的每一项arr_n[j]进行对比,如

JS数组去重算法实现

转帖: https://github.com/wteam-xq/testDemo/blob/master/array.html 1.遍历数组法 最简单的去重方法, 实现思路:新建一新数组,遍历传入数组,值不在新数组就加入该新数组中:注意点:判断值是否在数组的方法“indexOf”是ECMAScript5 方法,IE8以下不支持,需多写一些兼容低版本浏览器代码,源码如下: // 最简单数组去重法 function unique1(array){ var n = []; //一个新的临时数组 //遍

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

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