CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  JavaScript

如何将重复的数组合并?

楼主imatree(我是一棵树)2003-02-02 11:09:17 在 Web 开发 / JavaScript 提问

例如:  
  --------------------------------  
  var   test   =   new   Array();  
  test[0]   =   '123;  
  test[1]   =   '123;  
  test[2]   =   '123;  
  --------------------------------  
   
  合并后想的到的结果是   test[0]   =   '123'   (即把重复的数组合并),JScript本身是否有这类函数?或者有其它比较高效的办法吗? 问题点数:0、回复次数:10Top

1 楼wangxj0600(闭门思过中)回复于 2003-02-02 14:06:20 得分 0

js里面没有这样的函数。Top

2 楼wangxj0600(闭门思过中)回复于 2003-02-02 14:08:04 得分 0

大概用两个循环是最好的方法。Top

3 楼llrock(百乐宝||昨夜星辰)回复于 2003-02-02 16:06:52 得分 0

这样行不?  
  ====================================  
  <SCRIPT>  
  function   arrange(arr)  
  {//注意arr   为引用,直接操作实参  
        arr.sort();//根据ASC重牌  
        var   ptr=0;  
        while(ptr<arr.length)  
    if(arr[ptr]==arr[ptr+1])arr.splice(ptr,1);//当越界时,js数组返回undefined,从而结束循环  
    else   ptr++        
  }  
   
  //测试...  
  var   test1=[1,2,3,3,2,4,6,5,4,6,1,2]  
  document.write("原数组:"+test1+">>>>>>     ")  
  arrange(test1)  
  document.write(test1+"<BR><BR>")  
   
  var   test2=["function","JavaScript","ptr","while","function","splice","sort","ptr","sort","JavaScript","JavaScript","splice"]  
  document.write("原数组:"+test2+">>>>>>     ")  
  arrange(test2)  
  document.write(test2+"<BR><BR>")  
  </SCRIPT>Top

4 楼imafool(中正仁和)回复于 2003-02-04 21:56:25 得分 0

先排序岂不……还是不先排吧。Top

5 楼llrock(百乐宝||昨夜星辰)回复于 2003-02-04 22:57:04 得分 0

因为楼主要求合并相同项,势必改变数祖长度,于是元素顺序也被打乱,所以排序不会影响预期效果。  
  如果你是按特定规则排列好的,你可以用sortfunction来根据逻辑关系排序,Top

6 楼llrock(百乐宝||昨夜星辰)回复于 2003-02-04 22:59:13 得分 0

楼上是不是楼主的马甲?  
  Top

7 楼abent(阿木一头)回复于 2003-02-07 05:42:28 得分 0

llrock(百乐宝)用了JS版本   5.5的方法。Top

8 楼net_lover(【孟子E章】)回复于 2003-02-07 17:52:09 得分 0

<script>  
  var   a   =new   Array("AAAA","B","A","A","B","F","D","C","A","B","A","A","B","C")  
  for   (var   i=0;i<a.length;i++)  
  {  
  for(j=i+1;j<a.length;j++)  
  {  
  if(a[i]==a[j])   a[i]=null  
  }  
  }  
  var   m   =   0,ok   =   new   Array()  
  for(k=0;k<a.length;k++)  
  {  
  if(a[k])ok[m++]   =   a[k]  
  }  
  alert(ok)  
  </script>  
  Top

9 楼imafool(中正仁和)回复于 2003-02-08 21:50:34 得分 0

建议:发现重复后弹出当前项,这在JScript内置支持的.你可以参考5.6文档,写出来也很容易的.Top

10 楼xuzuning(唠叨)回复于 2003-02-09 09:27:22 得分 0

另一种写法,有点小毛病。:(  
  <script>  
  var   test=[1,2,3,3,"abc",4,6,5,4,6,1,2];  
  document.write("原数组:"+test+"<br>");  
  var   ar   =   new   Array();  
  for(v   in   test)  
      ar[test[v]]   =   v;  
  document.write("工作数组:"+ar+"<br>");  
  var   test   =   new   Array();  
  for(v   in   ar)   {  
      test[ar[v]]   =   v;  
  }  
  document.write("原数组:"+test+"<br>");  
   
  </script>  
  Top

相关问题

  • 大家帮忙看一下如何屏蔽组合框的数据查询的重复值?
  • 如何删除表中的某些字段组合重复的纪录,只保留一条?
  • 如何取出一个表中2个字段的组合的结果不重复的所有的记录?
  • PHP如何实现数组合并?
  • 如何去掉combobox里重复的数?
  • 如何找出重复数据???
  • 如何避免数据重复?
  • 》》》》》》请问如何筛选重复数据
  • 如何删除部分重复数据
  • 重复数据如何合并

关键词

  • test

得分解答快速导航

  • 帖主:imatree

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo