![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
нууу.... сортировка определенно есть.... вот только что делает после сортировки объект со значением x=50 на последнем месте ?! либо я чего-то не понимаю, либо одно из двух....
|
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
эврика, елкить....
там строковая сортировка происходит... так что надо что-то придумывать (ведущие нули, например, учитывать), либо самому сортировку писать... а жаль... вопрос в принципе снят... Последний раз редактировалось Nox Noctis; 23.04.2002 в 18:13. |
|
|||||
|
Мастер Цифрового Облика
|
а надо было всего-то дописать метод.
![]() см [RTFM] order = function(a,b) { a = Number(a) b = Number(b) if (a > b) return -1 if (a < b) return 1 if (a == b) return 0 } myArray.sortOn(order); |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
ув. тов. УильямБрэдберри,
при всем уважении к вашим творческим заслугам, иногда стиль Ваших высказываний, предполагающий абсолютную убогость собеседника, несколько напрягает, что, конечно, является Вашим личным делом, но может травмировать людей с более хрупкой душевной организацией я читал хелп, представляешь ?! да-да... и такое бывает... но мне нужна сортировка по заданному _полю_ объекта в массиве _объектов_ за этим мне и понадобилась функция массив.сортОн ! применить стандартную сортировку с заданной сортировочной функцией мне не удалось... (либо это у меня руки кривые, либо не судьба) поэтому я стал использовать сортОн ([RTFM] ), при применении которой и вспомнил о "строковости" сортировки...Последний раз редактировалось Nox Noctis; 23.04.2002 в 23:16. |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
мм... хорошо, я признаю, что недоэкспериментировал с обычным сортом:
предложенный тобой код (тот же, который пытался использовать я) не работает, но если внести Нумбер'ы в скобки ифов - то все пучком... order = function (a, b) { if (Number(a.x)<Number(b.x)) { return -1; } if (Number(a.x)>Number(b.x)) { return 1; } if (Number(a.x) == Number(b.x)) { return 0; } }; хотя если делать так, то придется для сортировки по каждому из полей писать сортировочную функцию.... или придумать что-нибудь хитрецкое.... Последний раз редактировалось Nox Noctis; 23.04.2002 в 23:31. |
|
|||||
|
МЕГАФЛЭШЕР
Регистрация: May 1999
Адрес: Россия, Москва
Сообщений: 1,181
|
//-------------------------------------------------------------------------
// sort array elements by object property value (number)
//-------------------------------------------------------------------------
Array.prototype.sortOnNum = function(param)
{
var sortOn_function = function(a,b)
{
var param = arguments.callee.param;
a = Number(a[param]);
b = Number(b[param]);
return (a<b)*-1||(a>b)*1||0;
}
sortOn_function.param = param;
this.sort(sortOn_function);
}
![]() Последний раз редактировалось john; 24.04.2002 в 04:02. |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
:))
все дети любят, все мамы советуют :D Последний раз редактировалось Nox Noctis; 24.04.2002 в 11:09. |
|
|||||
|
Мишань, а так:
function order (a, b) {
if (a.x < b.x) {
return -1;
} else if (a.x > b.x) {
return 1;
} else {
return 0;
}
}
function retrace (what) {
trace ("");
for (var i = 0; i<what.length; i++) {
trace (i+" :: "+"{x: "+what[i].x+" ; y: "+what[i].y+"}");
}
}
//
test = [{x:150, y:20}, {x:50, y:20}, {x:200, y:20}, {x:10, y:20}, {x:100, y:20}];
//
retrace(test);
test.sort(order);
retrace(test);
__________________
Two beer or not two beer?... |
|
|||||
|
Мастер Цифрового Облика
|
Цитата:
не обращая внимания на такую мелочь, как заголовок... subj потом обижаются... ![]() там ж НАПИСАНО "ДЛЯ ДРУГИХ" я -то грешным делом подумал, что такой продвинутый (без кавычек) флэшер , как Nox Noctis уже разобрался с какими-то там полями... и поэтому он закрыл тему... Я же, в свою очередь посчитав ее незавершенной, для других, интересующихся этой же темой я и написал те строки дабы натолкнуть остальных на нужную мысль... ![]() и ни в коей мере не пытаясь как-то задеть якобы мифическую "убогость" первооткывателя топика ![]() |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
2SPV
Паш, почитал бы ты базар, который чуть выше написан ![]() изначально вопрос был в чем: почему сортирую числа, а, например число 50 ставится после числа 120... потом до меня дошло, что сортировка строковая и возник другой вопрос - а кто идет за клинским ![]() и твой метод сортировки тоже будет сравнивать построково... 2УильямБрэдберри извини, я тебя не так понял вчера вечером настроение было паршивое, да еще так обидно стало, что не заметил сразу ту фишку с внесением нумберов внутрь (и врезультате столько всего нагородил...)... залезаю сюда - а тут как раз сообщение, что мол "все гениальное просто, обратное неверно" а с полями я и правда разобрался... до того, как обычный сорт научился применять если я вам покажу как именно я, кхм, "разобрался" - вы уржетесь Последний раз редактировалось Nox Noctis; 24.04.2002 в 12:28. |
![]() |
Часовой пояс GMT +4, время: 22:12. |
|
|
« Предыдущая тема | Следующая тема » |
|
|