Javascript - 删除数组中的重复值

时间:2015-03-10 07:56:10

标签: javascript jquery

但我希望在数组中留下最后两个重复值,就像

一样

arr = [1,2,3,4,4,4, 4 4 ,5,6, 6 6

,结果将是

result = [1,2,3,4,4,5,6,6]

我想留下最后两个的原因是我有2个数组,如日期和数据,它必须相互匹配。

谢谢。

4 个答案:

答案 0 :(得分:0)

使用jquery,您可以使用:

var newarr=[];
$.each(arr, function(i, e) {
 if ($.inArray(e, newarr) == -1) newarr.push(e);
});
console.log(newarr)

答案 1 :(得分:0)

试试这个:

var arr = [1,2,3,4,4,4,4,4,5,6,6,6],
    result = [],
    fisrtOccurence = -1;

for(var i=0; i<arr.length; i++) {
    fisrtOccurence = result.indexOf(arr[i]);
    if(fisrtOccurence === -1) {
        result.push(arr[i]);
    } else {
        if(result.indexOf(arr[i],fisrtOccurence+1) === -1) {
            result.push(arr[i]);
        }
    }
}

console.log(result);

答案 2 :(得分:0)

尝试此解决方案:JSFiddle

     var arr = [1,2,3,4,4,4,4,4,5,6,6,6]

   // using reduce function of array
    Array.prototype.unique = function() {
        return this.reduce(function(previousValue, current) {
            if (previousValue.indexOf(current) < 0) {
                previousValue.push(current);
            }
            return previousValue;
        }, []);
    }

    console.log(arr.unique());

    // using filter
    var filteredArray= arr.filter(function(element, index, self) {
        return index == self.indexOf(element);
    });

    console.log(filteredArray);

答案 3 :(得分:0)

Demo

试试这个

newarr = [];
testarr = [];
duplicatearr = [];
locArray = [1,2,3,4,4,4,4,4,5,6,6,6];
for (var i = 0; i<locArray.length;i++)
{
var idx = $.inArray(locArray[i], testarr);
if (idx == -1) {
  testarr.push(locArray[i]);
  newarr.push(locArray[i]);
}
    else
    {  
        var id = $.inArray(locArray[i], duplicatearr);
        if (id == -1) {
        newarr.push(locArray[i]);
        duplicatearr.push(locArray[i]);
        }

    }


}
console.log(newarr);