Страницы: 1
есть такой вариант, но если массивы увеличить до 2000 в каждом, по времени будет слишком дорогая операция
Выделить кодКод:
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);
я вызываю сортировку массива c[1], т.е. именно его я и хочу отсортировать. но хочу, чтоб сравнивались при этом не элементы его же самого, а элементы c[0].
если все оставить именно так, то в результате получится сортировка имен по алфавиту. а я хочу, чтоб имена отсортировались по соответствующим им порядковым номерам.
в данном случае в comp в виде параметров a и b попадут элементы массива c[1]. можно ли сделать так, чтобы в comp попадали элементы массива c[0]?
хм, вы же сами вызываете
что я не понимаю...
нужна помощь.
нужно отсортировать один массив по другмоу:
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]? в итоге я хочу получить
Спасибо, то что нужно. не знаете, если ли возможность закроссбраузить эту возможность?
var A = {a: 1};
A.watch ("a", function (propName, oldValue, newValue) { print (propName + ": " + oldValue + ": " + newValue); });
A.a = 2;
думается мне, в javascript это вообще тупиковая ситуация:
нужно подвесить к свойству listener, который сработает как только изменилось значение этого свойства.
вот тут как раз и нужно, чтоб отработал listener
может я ошибаюсь, и это как-то можно сделать в javascript?
Спасибо! ссылка особо помогла (+ разбор реализации аналогигчных методов в C#)
maxmets
В общем случае никакого другого алгоритма, кроме перебора всех элементов, не может быть.Как уже написано выше, в Firefox (вернее в JS 1.6) этот метод уже реализован.
http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array:indexOf
конечно можно так:
Array.prototype.indexOf = function(item) {
for (var q = 0, length = this.length; q < length; q++) {
if (this[q] == item) return q;
}
return -1;
}
но в этом случае приходится бегать по всему массиву. а если он очень большой? вот бы сделать так, чтоб бегать не пришлось. может у кого-то есть мысли?
Существует ли какой-то способ узнать как спозиционирован html-элемент. Т.е. если есть элемент вида
<ELEMENT STYLE="position: absolute;"></ELEMENT>,
у него можно спросить ELEMENT.STYLE.POSITION, а если элемент задан в виде
<ELEMENT CLASS="qwe"></ELEMENT>
<STYLE>
.qwe {position: absolute;}
</STYLE>,
можно ли в этом случае узнать как он спозиционирован?
Страницы: 1