学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
轻松建立自己的群组,招兵买马   
 15 12
发新话题
打印

JS筛选

昨晚我遇到一个高手也和他在讨论这个问题。谁知道他只是几分钟之后就写了一段代码给我,原理也是遍历数组的,但代码精炼。运行效率应该也可以接受。高手啊。下面和大家分享一下他的这段代码。稍微做了一些简单的修改。
<script>
var Arr1=['1','2','2','3','2','3','2','5'];
var Arr2 = new Array();
var isHave; //判断Arr2数组中是否存在Arr1数组中的数组元素
for(var i=0,j=Arr1.length;i<j;i++)
{
    isHave = false;
    for(var x=0,y=Arr2.length; x<y; x++)
    {
        if(Arr1[i] == Arr2[x])
        {
            isHave = true;
            break;
        }
    }
    if(!isHave)
    {
        Arr2.push(Arr1[i]);
    }
}
alert(Arr2);
</script>
沉静了一段时间,编程水平又退步了,快点快马加鞭......

TOP

顶!学习了!

TOP

今天粗略地查看了一下Javascript资料,才发现Javascript里面原来有个delete运算符用来删除对象的属性或者数组的元素的。原来自己对于Javascript还有很多不懂的。- -||
  于是就想到了拿delete运算符来解决删除数组中重复的元素这个问题,尝试了一下,原来还真行。而且代码还是相当的简单。所以呢,大家要将Javascript学得更加全面一点,这样就不会将简单的问题复杂化了。
  代码如下:
<script language="Javascript">
var arr=new Array(5,5,2,3,1,5,2,6,6,5,2,3,8);
for(i=0;i<arr.length;i++)
{
  for(j=i+1;j<arr.length;j++)
  {
    if(arr[j]==arr[i])
    {
      delete arr[j]; //用delete运算符删除重复的数组元素
    }
  }
}
for(i=0;i<arr.length;i++)
{
  //用delete运算符删除了数组中的元素后,该元素值就成了undefined
  if(arr[i]!=undefined)
  {
    document.writeln(arr[i]); //输出结果
  }
}
</script>
本帖最近评分记录
  • kevintang 金币 +1 我很赞同 2008-4-16 16:00
沉静了一段时间,编程水平又退步了,快点快马加鞭......

TOP

引用:
以下是引用 编程之星 在 2008-4-16 15:03 的发言:

今天粗略地查看了一下Javascript资料,才发现Javascript里面原来有个delete运算符用来删除对象的属性或者数组的元素的。原来自己对于Javascript还有很多不懂的。- -||
  于是就想到了拿delete运算符来解决删除数组中重 ...
变成了undefiend,然后呢???照样不是位子空在那里~~~
难道在这里的人就不会真正的去学下高效和出色的代码???
我都明确的说了,Prototype框架Array对象的uniq方法~~
orz~~你们继续视而不见吧
个人ajax技术专题站: http://www.ajaxgo.org 我不会闲你烦,只会闲你不够烦!

TOP

不好意思,惭愧,惭愧,呵呵
沉静了一段时间,编程水平又退步了,快点快马加鞭......

TOP

 15 12
发新话题