2013-09-16 4 views
0

Этот вопрос возникает много, но моя конкретная ситуация, похоже, не покрывается никакими SO-ответами, которые я рассмотрел.Удалите многомерные повторяющиеся массивы

У меня есть многомерный массив с несколькими повторяющимися массивами, которые я хотел бы удалить.

[ 
    [8, 12], 
    [8, 17], 
    [8, 92], 
    [8, 12] 
] 

[8, 12] появляется дважды. Как удалить этот дубликат?

+2

Вы что-то пробовали? У вас есть ограничения производительности и очень большие массивы? –

+2

Вы можете пропустить их, создать новый массив и проверить каждый элемент, если он присутствует в новом массиве, прежде чем добавлять его. – Ibu

+3

Какие еще сообщения SO вы просмотрели? Все они должны работать, только вам нужно изменить сравнение, чтобы он считал одинаковые (но не идентичные) массивы равными. – Bergi

ответ

2

Что можно сказать о следующем:

var array1 = [[8,12],[8,17],[8,92],[8,12]]; 
var array2 = new Array(); 

for (var i=0; i<array1.length; i++) { 
var e1 = array1[i]; 
var exists = false; 
for (var j=0; j<array2.length; j++) { 
    if (array2[j][0] == e1[0] && array2[j][1] == e1[1]) exists = true; 
} 
if (exists == false) { 
    array2[array2.length] = e1; 
} 
} 

array2 теперь array1 без дублей. это должно быть слишком медленным для программирования в реальном времени, но оно должно работать. Прошу прощения, если я закодировал что-то не так, это не намеренно. Я не тестировал код.

+1

Он работает :) (скопируйте пасту в хром javascript-консоли) –

Смежные вопросы