在数组中查找重复项并使用javascript将其删除

时间:2010-09-13 10:49:24

标签: javascript

如何在数组中查找重复项并使用javascript删除它们?

3 个答案:

答案 0 :(得分:3)

要做到这一点,你可以使用类似下面的东西,它可以从数组中删除重复数据。如果您的数组只包含字符串或数字,则可以大大简化这一过程。

var arrayContains = Array.prototype.indexOf ?
    function(arr, val) {
        return arr.indexOf(val) > -1;
    } :

    function(arr, val) {
        var i = arr.length;
        while (i--) {
            if (arr[i] === val) {
                return true;
            }
        }
        return false;
    }

function removeDuplicates(arr, equals) {
    var val, originalArr = arr.slice(0);
    arr.length = 0;

    for (var i = 0, len = originalArr.length; i < len; ++i) {
        val = originalArr[i];
        if (!arrayContains(arr, val)) {
            arr.push(val);
        }
    }

    return arr;
}

var arr = [1, 2, 2, 1, 3];
removeDuplicates(arr);
console.log(arr); // [1, 2, 3]

答案 1 :(得分:1)

var sampleArr=new Array(1,1,1,1,1,2,2,3,3,3,4,4,4); //Declare array
document.write(uniqueArr(sampleArr)); //Print the unique value

//Adds new uniqueArr values to temp array
function uniqueArr(a) {
 temp = new Array();
 for(i=0;i<a.length;i++){
  if(!contains(temp, a[i])){
   temp.length+=1;
   temp[temp.length-1]=a[i];
  }
 }
 return temp;
}

//Will check for the Uniqueness
function contains(a, e) {
 for(j=0;j<a.length;j++)if(a[j]==e)return true;
 return false;
}

答案 2 :(得分:0)

for(var i=0; i < arr.length; i++)
{
    for(var j=i+1; j < arr.length; j++)
    {
        if(arr[j] == arr[i])
        {
            arr.splice(j, 1);
        }
    }
}