Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.09.2012, 17:48
Профессор
Отправить личное сообщение для hoax Посмотреть профиль Найти все сообщения от hoax
 
Регистрация: 20.09.2012
Сообщений: 151

Сортировка в таблице
Всем привет, хочу давно ужу учусь по вашему учебнику, и возникают вопросы, вот мне сейчас надо сделать сортировку на сайте, но по данному примере http://learn.javascript.ru/play/tuto...ort/index.html

Мне непонятен сам принцип сортировки, а именно этот код

var compare;

        switch(type) {
          case 'number':
            compare = function(rowA, rowB) {
              return rowA.cells[colNum].innerHTML - rowB.cells[colNum].innerHTML;
            };
            break;
          case 'string':
            compare = function(rowA, rowB) {
              return rowA.cells[colNum].innerHTML > rowB.cells[colNum].innerHTML ? 1 : -1;
            };
            break;
        }


Вот скажите, что в данной ф-ии function(rowA, rowB) является параметром? И как вычисляется сама сортировка? В данном случае это

return rowA.cells[colNum].innerHTML - rowB.cells[colNum].innerHTML;

Заранее спасибо, сорь если не в том разделе создал, в учебника у вас давно, а на форум почти не заходит.
Ответить с цитированием
  #2 (permalink)  
Старый 20.09.2012, 19:31
Профессор
Отправить личное сообщение для hoax Посмотреть профиль Найти все сообщения от hoax
 
Регистрация: 20.09.2012
Сообщений: 151

хелп ребятки
Ответить с цитированием
  #3 (permalink)  
Старый 20.09.2012, 23:35
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 16.12.2011
Сообщений: 4,415

http://javascript.ru/Array/sort
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #4 (permalink)  
Старый 20.09.2012, 23:40
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 16.12.2011
Сообщений: 4,415

и вот еще http://learn.javascript.ru/compariso...е-строк
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #5 (permalink)  
Старый 20.09.2012, 23:48
Профессор
Отправить личное сообщение для hoax Посмотреть профиль Найти все сообщения от hoax
 
Регистрация: 20.09.2012
Сообщений: 151

ммм это понятно

а что просиходит именно здесь?


rowA.cells[colNum].innerHTML - rowB.cells[colNum].innerHTML;

номер ячеек1 - номер ячеек2?
Ответить с цитированием
  #6 (permalink)  
Старый 20.09.2012, 23:50
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 16.12.2011
Сообщений: 4,415

function compare (a, b) {
// a = 11; b = 10;

return a - b;//11 - 10 = 1  значит "а" больше
}
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #7 (permalink)  
Старый 21.09.2012, 00:01
Профессор
Отправить личное сообщение для hoax Посмотреть профиль Найти все сообщения от hoax
 
Регистрация: 20.09.2012
Сообщений: 151

Хммм... что-то не очень соображаю, что именно просходит с ячейками?

rowA.cells[colNum].innerHTML - rowB.cells[colNum].innerHTML;


Понимаю это так

ПараметрА.ячейки.[номер ячейки в строке (в данном случае - 0)].написать - (тоже самое)
Ответить с цитированием
  #8 (permalink)  
Старый 21.09.2012, 00:17
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 16.12.2011
Сообщений: 4,415

Сообщение от hoax Посмотреть сообщение
Хммм... что-то не очень соображаю, что именно просходит с ячейками?

rowA.cells[colNum].innerHTML - rowB.cells[colNum].innerHTML;


Понимаю это так

ПараметрА.ячейки.[номер ячейки в строке (в данном случае - 0)].написать - (тоже самое)
function sortFunction(a, b){
  if(a меньше, чем b по некоторому критерию)
     return -1 // Или любое число, меньшее нуля
  if(a больше, чем b по некоторому критерию)
     return 1  // Или любое число, большее нуля
  // в случае а = b вернуть 0
  return 0
}
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #9 (permalink)  
Старый 02.10.2012, 14:54
Профессор
Отправить личное сообщение для hoax Посмотреть профиль Найти все сообщения от hoax
 
Регистрация: 20.09.2012
Сообщений: 151

а - это все числа меньше нуля
б - больше нуля?
Ответить с цитированием
  #10 (permalink)  
Старый 02.10.2012, 15:04
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

var compare;

        switch(type) {  // В свич передаётся тип переменной
          case 'number': // Если переменная число
            compare = function(rowA, rowB) { // Тогда мы переменной compare присваиваем анонимную функцию
              return rowA.cells[colNum].innerHTML - rowB.cells[colNum].innerHTML; // Которая возвращает разницу между ячейками rowA.cells[colNum] и rowB.cells[colNum]
            };
            break;
          case 'string': // Если тип переменной строка
            compare = function(rowA, rowB) { // Тогда мы переменной compare присваиваем другую анонимную функцию
              return rowA.cells[colNum].innerHTML > rowB.cells[colNum].innerHTML ? 1 : -1; // Где если rowA.cells[colNum] больше rowB.cells[colNum] то функция возвращает 1, в противном случаи -1
            };
            break;
        }
__________________
.

Последний раз редактировалось Skipp, 02.10.2012 в 15:07.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка tr в таблице Mutagena jQuery 1 28.08.2015 02:30
Как сделать размер ячейки в таблице не больше определённого значения? javascript_pupil (X)HTML/CSS 16 18.02.2012 11:52
Криво работает скрипт jQuery поиска в таблице dim565 jQuery 0 17.12.2011 20:23
Изменение цвета ячейки в таблице, при наведении на строку другой таблицы Psychosonic Общие вопросы Javascript 12 24.11.2010 16:44
Сортировка числовых данных в таблице Vladsss Общие вопросы Javascript 15 01.09.2009 17:02