Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> array_unique для JavaScript, незнаюкудадеть - можеткомупонадобится 
:(
    Опции темы
Vaulter
Дата 3.2.2005, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 1
Всего: 22



Код

function array_unique(thearray)
{
thearray.sort();
//reset($thearray);
newarray = new Array();
for (n=0;n<thearray.length;n++)
{
 unique=1;//by default
 for(nn=0;nn<newarray.length;nn++)
  if (thearray[n] == newarray[nn])
  {
   unique=0;//already exists
   break;
  }
 if(unique)//dont exists
  newarray.push(thearray[n]);
}
return newarray;
}



--------------------
PM MAIL WWW ICQ   Вверх
Sardar
Дата 3.2.2005, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Мдям, квадратичная скорость... после этого мало кому захочется такой код использовать smile
Лучше всегда пересмотреть идею, зачем может понадобится такая функция?
Но всё же перепишем, побыстрее:
Код
Array.prototype.unique=function() {
 var ret=[];
 var reg={};
 for (i=0;i<this.length;i++) {
    if(typeof(reg["~"+this[i]])!="undefined") continue;
    reg["~"+this[i]]=true;
    ret.push(this[i]);
 }
 return ret;
}

var a=[90,6,7,34,90,45,6,34,8,90];
alert(a);
alert(a.unique());


Скорость О(N*скорость_хешей*скорость_конкатенации_строк). Скорость хешей и кокатенация очень быстрые. Можно убедится используя оба кода на больших массивах.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0420 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.