javascript-用js编写一个方法,去掉一个数组的重复元素

问题描述

用js编写一个方法,去掉一个数组的重复元素

下面是我自己写的,刚学完js练练手。
调试过,发现tmp等于数组里的第二个1 并且arr1[0]等于1时,不等的条件语句竟然进去了
何解啊?
//////////////////////////////////////我简化了我的问题

 <script type="text/javascript">
var tmp='';
var arr=[1,2,'abc',1];
var arr1=[];

tmp=arr.splice(0,1);
arr1.push(tmp);

//tmp=arr.splice(2,1);     //先注释这句运行一遍,在不注释运行一遍

if (tmp!=arr1[0])
{
    alert('tmp是:'+tmp+' '+'arr1[0]是:'+arr1[0]);
    alert('不等于');
};
alert('tmp的类型是:'+typeof(tmp)+' arr[0]的类型是:'+typeof(arr1[0]));
</script>

////////////////////////////////取消注释 在运行  结果就通过条件了,为什么呢!!

麻烦各位帮我看看问题出在哪了,谢谢各位了。

var arr=[1,2,'abc',1,3,'abc'];
alert(deleteRepeatElement(arr));

function deleteRepeatElement(arr)
{
    var arr1=[];
    var tmp='';//存放用
    var a=0;//计数用

    for (var i = 0; i < arr.length; i++)
    {
        tmp=arr.splice(0,1);
        if(arr1.length==0)//将最开始的数组得第一个元素放入arr1
        {
            arr1.push(tmp);
            tmp='';
        }
        else
        {
            for (var j = 0; j < arr1.length; j++)
            {
                    if(tmp!=arr1[j])    //这里有问题!!!当tmp等于arr的第四个1的时候竟然进来了!
                {
                    a++;
                }
            }
            if(a==arr1.length)
            {
                arr1.push(tmp);
            }
            tmp='';
            i=-1;
            a=0;
        }
    }
    return arr1;
}

解决方案

splice返回的是数组,不是数字。数组和数组对比除非你引用的是同一个,即使内容一样也不是对等的。。

     arr1.push(tmp);
    alert(JSON.stringify(arr1))//[[1]]

解决方案二:

解答一(推荐):

??????? var s = [0,2,3,4,4,0,2];
??????? for(var i=0,o={},tmp=[],count=0,l=s.length;i<l;i++){
?&nb......
答案就在这里:编写一个方法,去掉一个数组中的重复元素

解决方案三:

var tmp='';
var arr=[1,2,'abc',1];
var arr1=[];

tmp=arr.splice(0,1);
arr1.push(tmp);

//tmp=arr.splice(2,1); //先注释这句运行一遍,在不注释运行一遍

if (tmp!=arr1[0])
{
alert('tmp是:'+tmp+' '+'arr1[0]是:'+arr1[0]);
alert('不等于');
};
alert('tmp的类型是:'+typeof(tmp)+' arr[0]的类型是:'+typeof(arr1[0]));

时间: 2024-11-03 08:11:50

javascript-用js编写一个方法,去掉一个数组的重复元素的相关文章

关于java数组定义一个函数清除该数组的重复元素,返回一个不能浪费长度的数组.

问题描述 关于java数组定义一个函数清除该数组的重复元素,返回一个不能浪费长度的数组. package cn.xtgj.testarr; /** 目前有数组" int[] arr = {11,2, 4, 2, 10, 11},定义一个函数清除该数组的重复元素,返回一个不能浪费长度的数组. * */ public class Arr { public void method(int[] arr){ int count=0; for(int i=0;i<arr.length;i++){ fo

JavaScript脚本库编写的方法_javascript技巧

JavaScript就是所谓的客户端脚本语言,是一种在互联网浏览器(浏览器也称为Web客户端,因为它连接到Web服务器上,以下载页面)内部运行的计算机编程语言.JavaScript的工作方式很有趣.普通网页内都会插入一些JavaScript代码.当浏览器加载该页面时,浏览器的内置解释器将读取并运行它在该页面中找到的JavaScript代码. 做Web开发已经四年,或多或少积累了一些JavaScript脚本.比如,限制input只允许输入数字的脚本:敲回车自动转到下一个控件,相当于Tab键的作用一

java-Java中在同一个类中把一个方法中的数组元素传到另一个方法中,怎么传啊?麻烦大家说一下,谢谢了!

问题描述 Java中在同一个类中把一个方法中的数组元素传到另一个方法中,怎么传啊?麻烦大家说一下,谢谢了! Java中在同一个类中把一个方法中的数组元素传到另一个方法中,怎么传啊?麻烦大家说一下,谢谢了! 麻烦大家了 解决方案 直接作为参数传就是了 void f1() { int[] x = {1,2,3,4,5}; f2(x[1]); } void f2(int n) { } 解决方案二: Spring AOP代理机制以及方法调用在同一个类的另一个方法的问题 解决方案三: 可以使用全局变量的方

JS 清除字符串数组中,重复元素的实现方法_javascript技巧

JS 清除字符串数组中,重复元素的实现方法 <script language="JavaScript"> <!-- var arrData=new Array(); for(var i=0; i<1000; i++) { arrData[arrData.length] = String.fromCharCode(Math.floor(Math.random()*26)+97); } //document.write(arrData+"<br/&g

JavaScript移除数组内重复元素的方法

 这篇文章主要介绍了JavaScript移除数组内重复元素的方法,实例分析了javascript遍历数组及删除等操作的相关技巧,需要的朋友可以参考下     本文实例讲述了JavaScript移除数组内重复元素的方法.分享给大家供大家参考.具体分析如下: 这段JS代码用于从数组中移除重复的元素,比如: ['apple', 'orange', 'peach', 'apple', 'strawberry', 'orange'] 去重后返回:s ['apple', 'orange', 'peach',

JavaScript移除数组内重复元素的方法_javascript技巧

本文实例讲述了JavaScript移除数组内重复元素的方法.分享给大家供大家参考.具体分析如下: 这段JS代码用于从数组中移除重复的元素,比如: ['apple', 'orange', 'peach', 'apple', 'strawberry', 'orange'] 去重后返回:s ['apple', 'orange', 'peach', 'strawberry'] 复制代码 代码如下: function removeDuplicates(arr) {     var temp = {};  

php删除数组中重复元素的方法_php技巧

几种php删除数组元素方法在很多情况下我们的数组会出现重复情况,那我们删除数组中一些重复的内容怎么办,这些元素必须保持他唯一,所以就想办法来删除它们,下面利用了遍历查询来删除重复数组元素的几种方法.方法一.完整删除重复数组实例-----删除数组中的一个元素 function array_remove_value(&$arr, $var){ foreach ($arr as $key => $value) { if (is_array($value)) { array_remove_value

Javascript 去除数组的重复元素_javascript技巧

我打开firebug的console,花了30秒想,30秒写,结果如下:(x为目标数组,y是去除重复元素后的结果) 复制代码 代码如下: var x=[1,1,3,4,5,3]; var y=[]; var tArray=function(i,arr){ var yap=false; for(var j=0;j<arr.length;j++){ if(arr[j]==i){yap=true;break;}; } if(!yap) arr.push(i); }; for(var t=0;t<x.

五种js 删除数组中重复元素实例

// 如果单个字符.. 效率扩展都很差... alert(['a','b','c','a','b','d','b'].sort().join("").replace(/(w)1*/g,"$1,")); 方法一 <script language="网页特效">      var fruit = new array(3);      fruit[0] = new array("苹果", "a");