сделайте кто нибудь чтобы оно порядок учитывало а то я мозг сломал)
cyber, чувак, выручай) ты придумал эту кашу, придумай как сделать чтобы она учитывала порядок и 12345 корректно превращалось в 54321, пожааалуйста ну пожаалуйста)! |
Цитата:
|
Цитата:
|
Maxmaxmaximus4, ок, как только закончу с курсовой , посмотрю что можно придумать)
|
:write:
var changes = {
insert : [[0, 5], [1, 4], [2, 3], [3, 2]],
length : 5,
relocation : []
}
function conversion(b, c) {
for (var a = 0; a < c.relocation.length; a++) {
var d = c.relocation[a];
b = b.splice(d[0], d[1]).concat(b)
}
for (a = 0; a < c.insert.length; a++) d = c.insert[a], b.splice(d[0], 0, d[1]);
b.length = c.length;
return b
};
alert( conversion([1, 2, 3, 4, 5],changes));
alert( conversion([1, 2, 3, 4, 5, 6, 7, 8, 20, 30],changes))
|
Рони
Я подставил значения var oldArray = [3,3,5,6,7,8,9,0,2,9,0,6,0]; var newArray = [3,3,9,0,3,8,9,0,5,6,7,2,8,9,0,6,0]; У тебя 12 операций уходит, хотя достаточно девяти. |
DjDiablo,
да скрипт не ставит найденные одинаковые цепочки сразу на свои места -- цепочки "доползают" до своего места по мере вставки недостающих элементов. |
Цитата:
http://learn.javascript.ru/play/feUHP |
DjDiablo,
3,3,5,6,7,8,9,0,2,9,0,6,0<br> 6,0,3,3,5,6,7,8,9,0,2,9,0<br> 8,9,0,6,0,3,3,5,6,7,2,9,0<br> 5,6,7,8,9,0,6,0,3,3,2,9,0<br> 8,9,0,5,6,7,6,0,3,3,2,9,0<br> 9,0,8,9,0,5,6,7,6,0,3,3,2<br> 3,3,9,0,8,9,0,5,6,7,6,0,2<br> 3,3,9,0,3,8,9,0,5,6,7,6,0,2<br> 3,3,9,0,3,8,9,0,5,6,7,2,6,0,2<br> 3,3,9,0,3,8,9,0,5,6,7,2,8,6,0,2<br> 3,3,9,0,3,8,9,0,5,6,7,2,8,9,6,0,2<br> 3,3,9,0,3,8,9,0,5,6,7,2,8,9,0,6,0,2<br> |
ш...што вы делаете наркоманы О_О
я уже кстати почти допилил рабочую функцию =) при условии что реплейс приоритетнее, удаления и вставки. то есть 10 реплейсов, приоритетнее 10 удалений и вставок. а это как раз то что нужно для ui, потому что перерисовать то что есть в уже готовом элементе мне не составит труда $scope[itemName] = arr[index]; $scope.$digest(); // зарендерить элемент а вот удалить и создать новый это то же самое что и тут тока новый парсинг дом этого элемента) |
| Часовой пояс GMT +3, время: 16:07. |