|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Mar 2009
Сообщений: 357
|
поиск дупликатов в массиве и расстановка их без повторений
есть массив с повторяющимися элементами. некоторые их них могут следовать друг за другом (т.е. два одинаковых элемента расположены рядом). как можно отсортировать массив так, чтобы между двумя одинаковыми элементами стоял хотя бы один отличающийся?
пока есть функция, которая перебирает массив в цикле и если i == i + 1 извлекает i из массива, ставит его в конец, запускает эту же функцию и break. но проблема в том, что иногда возникает переполнение стека (наверное потому, что в конце массива скапливаются два одинаковых элемента и функция запускается бесконечно). Последний раз редактировалось loover; 02.12.2011 в 21:17. |
|
|||||
var elem:*; for var i:int=1; i<array.length; i++) { if(array[i-1] == array[i]) { elem = array[i]; array.splice(i, 1); if(elem != array[0]) { array.unshift(elem); } else { for(var j:int=1; j<array.length; j++) { if(array[j-1] != elem && array[j] != elem) { array.splice(j, 0, elem); elem = null; break; } } if(elem) { if(array[array.length - 1] != elem) { array.push(elem); } else { // хз куда его в таком случае :) } } } } } Последний раз редактировалось BezDelnik; 02.12.2011 в 21:34. |
Часовой пояс GMT +4, время: 06:03. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|