程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> javascript-用js編寫一個方法,去掉一個數組的重復元素

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]]
csdn_jlt0
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved