Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.10.2011, 16:52
Интересующийся
Отправить личное сообщение для kent666 Посмотреть профиль Найти все сообщения от kent666
 
Регистрация: 19.04.2011
Сообщений: 27

Обясните принцип работы скрипта
есть скрипт с книги Девид Флэнаган. Не могу понять как работает его составляющая
<script>
function sortkids(e) {
// Это элемент, потомки которого должны быть отсортированы
	if (typeof e == "string") e = document.getElementById(e);
	// Скопировать дочерние элементы (не текстовые узлы) в массив
	var kids = [];
	for(var x = e.firstChild; x != null; x = x.nextSibling)
	if (x.nodeType == 1 /* Node.ELEMENT_NODE */) kids.push(x);
	// Выполнить сортировку массива на основе текстового содержимого
	// каждого дочернего элемента. Здесь предполагается, что каждый
	// потомок имеет единственный вложенный элемент – узел Text
	kids.sort(function(n, m) { // Функция сравнения для сортировки
		var s = n.firstChild.data; // Текстовое содержимое узла n
		var t = m.firstChild.data; // Текстовое содержимое узла m
		if (s < t) return -1; // Узел n должен быть выше узла m
		else if (s > t) return 1; // Узел n должен быть ниже узла m
		else return 0; // Узлы n и m эквивалентны 
        });
	// Теперь нужно перенести узлы-потомки обратно в родительский элемент
	// в отсортированном порядке. Когда в документ вставляется уже
	// существующий элемент, он автоматически удаляется из текущей позиции,
	// в результате операция добавления этих копий элементов автоматически
	// перемещает их из старой позиции. Примечательно, что все текстовые узлы,
	// которые были пропущены, останутся на месте.
	for(var i = 0; i < kids.length; i++) e.appendChild(kids[i]);
}
</script>
<ul id="list"> <!—-Этот список будет отсортирован -->
	<li>один<li>два<li>три<li>четыре<li>пять
<!-- элементы не в алфавитном порядке -->
</ul>
<!-- кнопка, щелчок на которой запускает сортировку списка -->
<button onclick="sortkids('list')">Сортировать</button>


помогите разобраться как работает ЭТО:
kids.sort(function(n, m) { // Функция сравнения для сортировки
		var s = n.firstChild.data; // Текстовое содержимое узла n
		var t = m.firstChild.data; // Текстовое содержимое узла m
		if (s < t) return -1; // Узел n должен быть выше узла m
		else if (s > t) return 1; // Узел n должен быть ниже узла m
		else return 0; // Узлы n и m эквивалентны 
                });

Заранее спасибо!

Последний раз редактировалось kent666, 17.10.2011 в 17:07.
Ответить с цитированием
  #2 (permalink)  
Старый 17.10.2011, 21:00
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 13,890

Сообщение от kent666
помогите разобраться как работает ЭТО:
Вот тут все описано...
http://javascript.ru/Array/sort
Ответить с цитированием
  #3 (permalink)  
Старый 18.10.2011, 08:42
Интересующийся
Отправить личное сообщение для kent666 Посмотреть профиль Найти все сообщения от kent666
 
Регистрация: 19.04.2011
Сообщений: 27

Спасибо. Это именно то что нужно)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Приостановка работы скрипта onejsquestion Общие вопросы Javascript 3 23.12.2016 17:50
Подвисание работы скрипта mel63 jQuery 0 09.09.2011 15:41
Механизм работы скрипта на сайте МДМ Банка tzhe jQuery 1 29.11.2010 20:36
Принцип работы счетчика liveinternet paveljava5 Общие вопросы Javascript 5 02.08.2010 10:53
Как переместить результат работы скрипта? Vlaimir Events/DOM/Window 2 31.08.2009 12:52