Поскольку вы сказали, что у вас есть отсортированный массив, вам нужно только удалить второй раз, когда элемент найден. Вам нужен только один для .
Функция splice()
возвращает удаленный элемент, поэтому просто используйте его, чтобы не удалять больше элементов такого типа.
Это решение более чистое и эффективное .
var aos = ["a","a","a","b","b","c","d","d"];
var lastRemoved = "";
for (var i = 1; i < aos.length; i++) {
if (aos[(i-1)] == aos[i] && lastRemoved != aos[i]) {
lastRemoved = aos.splice(i, 1);
}
}
Код проверен и работает . Результат: ["a", "a", "b", "c", "d"]