Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 29.09.2009, 15:17
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

map.sort(function(a, b){
    return (a[1] - b[1]) || (a[0] - b[0]);
});
Ответить с цитированием
  #12 (permalink)  
Старый 29.09.2009, 16:02
Интересующийся
Отправить личное сообщение для Ferroks Посмотреть профиль Найти все сообщения от Ferroks
 
Регистрация: 09.09.2009
Сообщений: 25

а описать как работает эта функция можешь?
Ответить с цитированием
  #13 (permalink)  
Старый 29.09.2009, 16:09
Интересующийся
Отправить личное сообщение для Ferroks Посмотреть профиль Найти все сообщения от Ferroks
 
Регистрация: 09.09.2009
Сообщений: 25

[6,16,0,0],[7,16,0,1],[8,16,0,2],[9,16,0,7],[10,16,0,4],[11,16,0,5],[12,16,0,6],[13,16,0,3],[7,17,0,9],[8,17,0,10],[9,17,0,11],[10,17,0,12] - теперь еще бы такую чтуку сделать,
например минимальный i в map[[i,j,0,0]] равен 4 а максимальный i равен 15, как бы добавить недостающие элементы в массив.

чтоб получилось

[4,16,0,0],[5,16,0,0],[6,16,0,0],[7,16,0,1],[8,16,0,2],[9,16,0,7],[10,16,0,4],[11,16,0,5],[12,16,0,6],[13,16,0,3],[14,16,0,0],[15,16,0,0],[4,17,0,0],[5,17,0,0],[6,17,0,0],[7,17,0,9],[8,17,0,10],[9,17,0,11],[10,17,0,12],[11,17,0,0],[12,17,0,0],[13,17,0,0],[14,17,0,0],[15,17,0,0]

Последний раз редактировалось Ferroks, 29.09.2009 в 16:12.
Ответить с цитированием
  #14 (permalink)  
Старый 29.09.2009, 16:58
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

В смысле как добавить?
function map_sort(a,b) {
    return (a[1] - b[1]) || (a[0] - b[0]);
}
map.push([4,16,0,0], [5,16,0,0], ..., [15,17,0,0]).sort(map_sort);

А как работает Array().sort -- почитайте документацию. Метод перебирает элементы, сортируя в соответствии со значением, которое возвращает сортирующая функция-индикатор (<=>0)
Ответить с цитированием
  #15 (permalink)  
Старый 29.09.2009, 19:18
Интересующийся
Отправить личное сообщение для Ferroks Посмотреть профиль Найти все сообщения от Ferroks
 
Регистрация: 09.09.2009
Сообщений: 25

не работает такой скрипт;

var map=[[6,16,0,0],[7,16,0,1],[8,16,0,2],[9,16,0,3],[10,16,0,4],[11,16,0,5],[12,16,0,6],[13,16,0,7],[6,17,0,8],[7,17,0,9],[8,17,0,10],[9,17,0,11],[10,17,0,12],[11,17,0,13],[12,17,0,14],[13,17,0,15],[6,18,0,16],[7,18,0,17],[8,18,0,18],[9,18,0,19],[10,18,0,20],[11,18,0,21],[12,18,0,22],[13,18,0,23],[6,19,0,24]];
//var min=0;
var min=map[0][0];
var max=map[0][0];
for (i=0;i<=map.length;i++)
{
if (map[i][0]<min)
{
min=map[i][0];
}
else if (map[i][0]>max)
{
max=map[i][0];
}
}
alert(min);
alert(max);
Ответить с цитированием
  #16 (permalink)  
Старый 30.09.2009, 13:39
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

var _min = map[0][0], _max = map[0][0];
for (var i=map.length; i--; ) {
    if (map[i][0] < _min) _min = map[i][0];
    else if (map[i][0] > _max) _max=map[i][0];
}

У Вас было i<=map.length, элемента с таким индексов не существует. поэтому была ошибка.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
есть ли стандартная функция вывода сожержимого массива что то вроди print_r в PHP??? mazovski Events/DOM/Window 4 20.08.2009 12:52
Как сформировать строку из массива di@mond Я не знаю javascript 9 11.06.2009 17:35
Просмотр массива Igor Я не знаю javascript 10 21.05.2009 17:03
Можно ли как для произвольного массива создавать вызовы функций , имеющих на входе kefi Общие вопросы Javascript 3 17.04.2009 16:53
вставка элементов массива в текстовую форму по клику olezyk Общие вопросы Javascript 3 21.03.2009 22:01