Программирование > JavaScript & JScript

Очистить строку от дублирующих значений

(1/1)

NeoNox:
У меня есть all  = document.popup.to.value;
Она содержит элементы через запятую.
Как мне убрать дублирующие элементы в ней?

Макс:
Алгоритм я думаю ясен:
1. Разбить строку на массив.
2. Отфильтровать дубликаты
3. Объединить строку

Делается примерно так
1. elements = all.split(\',\'); // split делает тоже что и в perl-е (только регекспы не поддерживает).
2. Здесь много можно чего придумать. Я бы создал второй массив
--- Код: ---
unique_elements = array();
i = 0; // счетчик по массиву
--- Конец кода ---

Потом функцию написал бы, которая проверяла бы входит ли элемент в массив
--- Код: ---
function in_array(var, ar) {
 for (n=0; n < ar.length; n++) {
   if (var == ar[n]) return true;
 }
 return false;
}
--- Конец кода ---


и потом цикл
--- Код: ---
for(k=0; k< elements.length; k++) {
  if (!in_array(ar[k], unique_elements)) {
    unique_elements[i++] = elements[k];
  }
}

--- Конец кода ---

скорее всего в этом цикле ты получиш массив уникальных значений.

3. str = unique_elements.join(\',\'); // объединяеш массив в строку.

Примерно так. Код я не проверял.


ЗЫ
имхо лучше не надо называть строку all , поскольку в IE есть объект с таким именем.

NeoNox:
сенкс.
получил такой простой ответ
a=\'1,2,3,1,2,7,7,6,7,8\';
arr1=a.split(/,/);
arr2=[];
for(i in arr1)arr2[arr1]++;
arr1=[];
for(i in arr2)arr1[arr1.length]=i;
alert(arr1) ;

Навигация

[0] Главная страница сообщений

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии