js过滤数组中相同的值函数

例1

 代码如下 复制代码

<script type="text/javascript">
    Array.prototype.del = function() {
        var a = {}, c = [], l = this.length;
        for (var i = 0; i < l; i++) {
            var b = this[i];
            var d = (typeof b) + b;
            if (a[d] === undefined) {
                c.push(b);
                a[d] = 1;
            }
        }
        return c;
    }
    var myArr=['text','text','5','2','2','3','4','5','5'];
    document.write(myArr.del());
          
</script>

例2

 代码如下 复制代码

<script type="text/javascript" language="javascript">
function filterArray(array){
 var key = 0; //初始化键值
 var arr = new Array(); //声明一个数组
 var num = array.length; //数组长度
 for(var i = 0 ;i < num;i++){ //对数组进行交叉对比
  //当对重复的值对比时,避免对比当前自己,需要在当前的基础上+1,比如array[0],array[1],如果对比array[0]的时候并不是拿自身array[0],而是array[1]
  for(var j = i+1;j < num;j++){
   if(array[i] == array[j]){ //将交叉的数组对比
    array[i] = null; //如果相等则 unset
    break; //并跳出
   } 
  }
 }
 
 for(var i = 0;i<num;i++){  //将数组进行for遍历
  if(array[i]){ //判断是否为空
   arr[key++] = array[i]; //将过滤后的数组给新数组arr赋值
  }
 }
 return arr;

</script>

调用方法

 代码如下 复制代码

<script type="text/javascript" language="javascript">
var arrDemo = new Array(1,2,1,1,4,6,7,1,2,6,11,21,11);
console.log(filterArray(arrDemo));
alert(filterArray(arrDemo));
</script>

时间: 2024-08-04 11:15:52

js过滤数组中相同的值函数的相关文章

java使用Hashtable过滤数组中重复值的方法_java

本文实例讲述了java使用Hashtable过滤数组中重复值的方法.分享给大家供大家参考,具体如下: package org.eline.core.web.support; import java.util.Hashtable; /***************************** * * @author zdw * */ public class ObjectFilter { public static void main(String[] args) { // String 测试 S

js数组中删除重复值的代码小结_javascript技巧

js数组中去除重复值 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 方法二 复制代码 代码如下: //去重复数组 function unique(data){ data = data || []; var a = {}; len = data.length; for (var i=0; i<len;i++){ var v = data[i]; if (typeof(a[v]) == 'undefined'){ a[v] = 1; } }; data.length=0; for (v

js检查某个元素在数组中的索引值

在现在代浏览器中判断一个元素在不在一个数组中,咱们可以用Array对象的indexOf()方法来取得这个元素在当前数组中的索引值,若索引值不等于-1,数组中就存在这个元素,例如:  代码如下 复制代码 var arr = [2,53,23,'test',9,'array']; //判断array在不在数组arr中 arr.indexOf('array') !== -1 ? alert('存在') : alert('不存在'); 但是IE9以前的版本都不支持此方法,那咱们就只能扩展一个:  代码如

php实现多维数组中每个单元值(数字)翻倍的方法_php技巧

本文实例讲述了php实现多维数组中每个单元值(数字)翻倍的方法.分享给大家供大家参考.具体分析如下: 前提:一个多维数组,它的每个最小单元值都为数字. 要求:写一个函数,将最小单元值翻倍. 代码如下 <?php $arr = array(1,3,'a'=>20,'b'=>array(2,4,6,'c'=>7)); function arr2($arr){ foreach($arr as $key=>$v){ if(!is_array($v)){ $arr[$key] *= 2

JavaScript中去掉数组中的重复值的实现方法_javascript技巧

复制代码 代码如下: 题目:要求写一个函数,去掉给定数组中的重复值. 如: 传入数组 a = [0, 8, 5, 4, 78, 8, 90, 4, 'a', 'b', 'a']; 要求返回:[0,4,5,8,78,90,a,b] 对于这个题目,在面试之后也想了好多次,不过一直没能想出一个时间复杂度较低的方法.昨天下午在宿舍看<JavaScript语言精粹>看到一个书中的一段代码有所触发,于是在jsfiddle上测试了,成功.代码如下(完整版参见jsfiddle) 复制代码 代码如下: var

Perl中怎样从数组中删除某个值

  这篇文章主要介绍了Perl中怎样从数组中删除某个值?本文讲解如何把数组的元素赋值为undef,然后在从数组中删除元素,需要的朋友可以参考下 我不确定undef是否和从数组中消除值有确切的关系,猜测一下,如果我们将undef视为"空",那么会有一些联系.但通常来说,将某些东西赋值为undef和删除某些东西是不一样的. 首先来看怎样把数组的元素赋值为undef,之后再了解如何从数组中删除元素. 从下面的代码开始: 代码如下: use Data::Dumper qw(Dumper); m

php实现多维数组中每个单元值(数字)翻倍的方法

 这篇文章主要介绍了php实现多维数组中每个单元值(数字)翻倍的方法,涉及php操作数组的技巧,需要的朋友可以参考下     本文实例讲述了php实现多维数组中每个单元值(数字)翻倍的方法.分享给大家供大家参考.具体分析如下: 前提:一个多维数组,它的每个最小单元值都为数字. 要求:写一个函数,将最小单元值翻倍. 代码如下 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <?php $arr = array(1,3,'a'=>20,'b'=>array(2,4

javascript检查某个元素在数组中的索引值_javascript技巧

在现在代浏览器中判断一个元素在不在一个数组中,咱们可以用Array对象的indexOf()方法来取得这个元素在当前数组中的索引值,若索引值不等于-1,数组中就存在这个元素, 例如: var arr = [2,53,23,'test',9,'array']; //判断array在不在数组arr中 arr.indexOf('array') !== -1 ? alert('存在') : alert('不存在'); 但是IE9以前的版本都不支持此方法,那咱们就只能扩展一个: 代码如下复制代码 Array

js过滤数组重复元素的方法_javascript技巧

复制代码 代码如下: function filterArray(str,array){ //此函数为过滤数组中重复的元素,并不允许插入空值,函数返回数组 var isnull = false; if(str == "" || str == null || str == 'undefined'){ isnull = true; } var newnum = 0; var newarray = []; var num = array.length; if(num == 0){ if(!is