06 апреля 2006

array_unique() на JavaScript

Как выкинуть все дубликаты из массива? На PHP есть специальная функция array_unique(), а JavaScript такими излишествами не изобилует.

Поэтому я нафантазировал такое решение:

  1. создаём объект;
  2. проходим по массиву и добавляем в этот объект новые поля (свойства), одноимённые очередным значениям массива. Поскольку двух полей с одинаковыми именами у объекта быть не может, дубликаты "схлопнутся", перезатрут друг друга;
  3. проходим по полям объекта и создаём из них массив.
Значится так:
function array_unique(arr)
{
  var vic = new Object();
  for(i=0; i < arr.length; i++)
   vic[arr[i]] = "";
  arr = new Array();
  for(i in vic)
    arr[arr.length] = i;
  return arr;
}

0 комментов:

Отправить комментарий