сделайте кто нибудь чтобы оно порядок учитывало а то я мозг сломал)
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, время: 20:47. |