Javascript - 删除数组中的重复值

Javascript - Remove duplicates value in array

本文关键字:删除 数组 Javascript      更新时间:2023-09-26

但我想在数组中保留最后两个重复的值,就像

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

结果将是

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

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

谢谢。

使用 jquery,您可以使用:

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

试试这个:

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);

试试这个解决方案: 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);

演示

试试这个

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);