Полезная информация

Юристы зарабатывают огромные деньги и славу, оперируя хорошим знанием законов. Правила форума — простой путь к успешному общению.

№121-06-2007 18:07:56

maxmets
Участник
 
Группа: Members
Зарегистрирован: 12-06-2007
Сообщений: 8
UA: Firefox 1.5

помогите решить проблему с сортировкой в js

нужна помощь.
нужно отсортировать один массив по другмоу:

Выделить код

Код:

comp = function(a, b) {
	return (a == b) ? 0 : (a > b) ? 1 : -1;
}
var c = [[2,3,1],['pit','mike','igor']];
c[1].sort(function(a, b) {return comp(a, b)});

в данном случае в comp в виде параметров a и b попадут элементы массива c[1]. можно ли сделать так, чтобы в comp попадали элементы массива c[0]? в итоге я хочу получить

Выделить код

Код:

c = [[1,2,3],['igor','pit','mike']];

Отредактировано maxmets (21-06-2007 18:14:16)

Отсутствует

 

№221-06-2007 18:42:44

Shutnik
Участник
 
Группа: Extensions
Зарегистрирован: 12-11-2005
Сообщений: 3785
UA: Firefox 2.0

Re: помогите решить проблему с сортировкой в js

в данном случае в comp в виде параметров a и b попадут элементы массива c[1]. можно ли сделать так, чтобы в comp попадали элементы массива c[0]?

хм, вы же сами вызываете

Выделить код

Код:

c[1].sort(function(a, b) {return comp(a, b)});

что я не понимаю...

Отсутствует

 

№321-06-2007 19:22:37

maxmets
Участник
 
Группа: Members
Зарегистрирован: 12-06-2007
Сообщений: 8
UA: Firefox 1.5

Re: помогите решить проблему с сортировкой в js

я вызываю сортировку массива c[1], т.е. именно его я и хочу отсортировать. но хочу, чтоб сравнивались при этом не элементы его же самого, а элементы c[0].
если все оставить именно так, то в результате получится сортировка имен по алфавиту. а я хочу, чтоб имена отсортировались по соответствующим им порядковым номерам.

shutnik пишет

в данном случае в comp в виде параметров a и b попадут элементы массива c[1]. можно ли сделать так, чтобы в comp попадали элементы массива c[0]?

хм, вы же сами вызываете

Выделить код

Код:

c[1].sort(function(a, b) {return comp(a, b)});

что я не понимаю...

Отсутствует

 

№421-06-2007 19:42:27

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 2.0
Веб-сайт

Re: помогите решить проблему с сортировкой в js

Выделить код

Код:

function comp (a, b)
{
    return(a==b)? 0: ((a>b)? 1: -1);
}
var c = [[2, 3, 1], ['pit', 'mike', 'igor']];
c [1]. sort
(
    function (a, b)
    {
        return comp (c [0] [c [1]. indexOf (a)], c [0] [c [1]. indexOf (b)]);
    }
);
c [0]. sort (comp);

Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№522-06-2007 13:42:28

maxmets
Участник
 
Группа: Members
Зарегистрирован: 12-06-2007
Сообщений: 8
UA: Firefox 1.5

Re: помогите решить проблему с сортировкой в js

есть такой вариант, но если массивы увеличить до 2000 в каждом, по времени будет слишком дорогая операция


Anton пишет
Выделить код

Код:

function comp (a, b)
{
    return(a==b)? 0: ((a>b)? 1: -1);
}
var c = [[2, 3, 1], ['pit', 'mike', 'igor']];
c [1]. sort
(
    function (a, b)
    {
        return comp (c [0] [c [1]. indexOf (a)], c [0] [c [1]. indexOf (b)]);
    }
);
c [0]. sort (comp);

Отсутствует

 

№622-06-2007 14:17:13

Lynn
Кофеман
 
Группа: Members
Откуда: Россия
Зарегистрирован: 16-02-2005
Сообщений: 1721
UA: Firefox 2.0
Веб-сайт

Re: помогите решить проблему с сортировкой в js

По-моему, проще привести этот массив к нормальному виду

Выделить код

Код:

[[2,'pit'],[3,'mike'],[1,'igor']]

Isn't it ironic... don't you think? — Alanis Morissette

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]