function array_unique( array ) { // Removes duplicate values from an array
//
// + original by: Carlos R. L. Rodrigues
var p, i, j;
for(i = array.length; i;){
for(p = --i; p > 0;){
if(array[i] === array[--p]){
for(j = p; --p && array[i] === array[p];);
i -= array.splice(p + 1, j - p).length;
}
}
}
return true;
}
здравствуйте, могли бы вы указать автора этой функции?
анонимус, Вы про которую?
Там в комментариях указан автор -- Carlos R. L. Rodrigues
Если Вы про ту, что в моем посте, то я и автор
Эта функция не работает в IE
Вызывает ошибку
>Эта функция не работает в IE
>Вызывает ошибку
К сожалению, да, потому что IE не поддерживает метод indexOf для массивов. Для IE нужно писать костыль с циклом для перебора всех значений (использовать вариант, приведенный выше)
В коде этой функции нету вызова indexOf
Подскажите, пожалуйста, как сделать, чтобы эта функция производила регистронезависимое сравнение элементов массива. Пытаюсь применить
array[i].toLowerCase() === array[--p].toLowerCase(), не срабатывает
Сорри, всё получилось.
Функция не пашет...
var a = ['1', '1', '1', '2', '2', '3'];
array_unique(a);
в итоге: '1', '1', '2', '3'
А почему не просто:
Какие-то подводные камни?