2015-03-10 2 views
0

Но я хочу, чтобы оставить последние два дубликата значение в массиве так же, какJavascript - Удалить значение дубликатов в массиве

обр = [1,2,3,4,4,4, , , 5,6, 6 , ]

и результат будет

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

Причина, по которой я хочу оставить последние два, у меня есть 2 массива, такие как дата и данные, и они должны совпадать друг с другом.

спасибо.

+0

возможно дубликат [Удалить дубликаты из массива JavaScript] (http://stackoverflow.com/questions/9229645/remove-duplicates-from-javascript-array) –

+0

http://jsfiddle.net/d6qwxa63/ – undefined

ответ

0

Использование JQuery вы можете использовать:

var newarr=[]; 
$.each(arr, function(i, e) { 
if ($.inArray(e, newarr) == -1) newarr.push(e); 
}); 
console.log(newarr) 
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); 
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); 
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); 
Смежные вопросы