09.12.2013, 03:24
|
Кандидат Javascript-наук
|
|
Регистрация: 08.12.2013
Сообщений: 142
|
|
ахаха суууука, оно не схавало ((
var oldArray = [1, 2, 3, 4, 5];
var newArray = [5, 4, 3, 2, 1];
массивы после преобразования не равны и проблема именно не в преобразовании а в данных которые возвращает функция.
Сообщение от l-liava-l
|
Может запилить что то гибридное.
|
а что если добавил а мы просмотрели? элементы не обновятся.
а что если он сделал так arr[1000000] = 100;
Последний раз редактировалось Maxmaxmaximus4, 09.12.2013 в 03:32.
|
|
09.12.2013, 03:48
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Maxmaxmaximus4, конечно не схавало, потому что ты изменил так что учитывается порядок и мне кажется оптимальнее менять на основе replace
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
09.12.2013, 03:50
|
Кандидат Javascript-наук
|
|
Регистрация: 08.12.2013
Сообщений: 142
|
|
cyber, слушай все мои изменения это то что я добавил i в indexOf()
когда я убираю результат тот же, когда я использую твою функцию результат тот же)
Сообщение от cyber
|
оптимальнее менять на основе replace
|
немного не понял, ты к тому что replace менее дорогая операция и нам приемущественно выцеживать её чем ремувы и инсерты?
в принципе есть идейка небольшая как replace так прокачать чтобы вначале он все свои дела делал, чтобы все что можно заменить им, заменялось им.
Последний раз редактировалось Maxmaxmaximus4, 09.12.2013 в 03:53.
|
|
09.12.2013, 04:15
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Maxmaxmaximus4,
какие данные у тебя в массиве лежат ? дом объекты ?
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
09.12.2013, 04:52
|
Кандидат Javascript-наук
|
|
Регистрация: 08.12.2013
Сообщений: 142
|
|
Сообщение от cyber
|
какие данные у тебя в массиве лежат ? дом объекты ?
|
нет, любые данные, числа, обьекты, что угодно, блин а, ты что не знаешь как ui работает?
<script src='//mychamber.ru/build/ui.js'></script>
<div controller="Ctrl">
Привет {name}, тебе {age} лет!
</div>
<script>
function Ctrl() {
name = 'Ашот'
age = 15
}
</script>
А тут короче надо будет сделать чтобы элемент повторялся столько раз сколько элементов в массиве, и значения элементов массива засовывались в переменную которую мы придумаем, например val
<div controller="Ctrl">
<div repeat="val in arr">{val}</div>
</div>
<script>
function Ctrl() {
arr = [1, 2, 3, 4]
}
</script>
и вот этот вот див внутренний повторится столько раз, сколько ячеек в массиве, и в каждом {val} будет иметь разное значение, суть в том чтобы при изменении массива элементы отражали его состояние. можно удалять каждый раз все созданные элементы и создавать новые и перерисовывать, но я хочу отражать только изменения, а для этого надо их отслеживать. все просто =)
Последний раз редактировалось Maxmaxmaximus4, 09.12.2013 в 04:58.
|
|
09.12.2013, 05:05
|
Кандидат Javascript-наук
|
|
Регистрация: 08.12.2013
Сообщений: 142
|
|
cyber, блин, и если честно я вообще не понимаю как твой алгоритм работает, ну то есть понимать то понимаю, но не понимаю почему то должно работать и как "учитывать порядок"
|
|
09.12.2013, 06:58
|
Профессор
|
|
Регистрация: 04.02.2011
Сообщений: 1,815
|
|
Цитата:
|
Привет Ашот, тебе 15 лет!
|
ты с лолей на мальчиков переключился ? ))))))))))
Чото дикую хреновину максимус ты придумал
Но в целом любопытно. Хотя поиск оптимального решения будет вероятно медленнее чем работа с dom. Вероятно нужно работать не с одним числом а с группами чисел (группы гораздо больше свидетельствуют о структуре чем отдельные числа). Так как последовательности чисел и групп можно объяснить по разному то мы получим дерево вариантов в котором нам придется искать кратчайший путь.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Последний раз редактировалось DjDiablo, 09.12.2013 в 10:32.
|
|
09.12.2013, 09:19
|
Профессор
|
|
Регистрация: 04.02.2011
Сообщений: 1,815
|
|
С другой стороны Я не уверен что разные объяснения как либо отражаются на структуре. Ну к примеру две последовательности 567 и 567567 можно объяснить как добавлением 567 слева так и добавлением 567 справа, это равнозначные варианты и выбрать можно любой.
окей если так посмотреть
33 2 567
33 4 567 3 567
здесь нам все равно было ли во втором случае 567 добавлено в конец или в середину
а вот здесь не все равно.
33 2 567 89 2 90
33 4 89 3 90 567
Вродебы 567 встречается и во втором случае.
Но у нас так же встречаются и 89 x 90.
если было добавлено 567 в конец то это три изменения
а если 89 90 в середину это аж четыре.
Вероятно 567 это добавленый элемент а не сохранившийся, так как добавление 567 потребует меньше трансформаций чем его сохранение. Ведь за сохранение трех чисел 567 мы вынуждены заплатить добавление аж 4х (89 x 90).
а вот ситуация по интереснее. В отличии от предыдущего примеру выбирать нужно между множеством обьяснений
1)
33 567 890 2 90 60
33 90 3 890 567 2 890 60
совпали 567 890 (6 совпадений)
2)
33 567 8 90 2 90 60
33 90 3 890 567 2 8 90 60
совпали 90 2 90 (5 совпадений)
3)
33 567 890 2 90 60
33 90 3 890 567 2 8 90 60
совпали 890 2 90 (6 совпадений)
4)
33 567 8 90 2 90 60
33 90 3 8 90 567 2 890 60
совпали 90 90 (4 совпадения)
5) ..... еще какие то
Гипотезы 1 и 3 требуют наименьшего числа изменений или можно сказать имеют наибольшее число совпадений между двумя массивами. Блядь, здесь как раз алгоритм Вагнера Фишера или алгоритм Хиршберга справляется
http://habrahabr.ru/post/117063/
P.S. 33 60 игнорирую чтобы не отвлекали, а так конечно они тоже участвуют
567 это не пятьсот шисят семь, а 5,6,7. Все числа от 0 до 9
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Последний раз редактировалось DjDiablo, 09.12.2013 в 11:46.
|
|
09.12.2013, 09:56
|
|
Профессор
|
|
Регистрация: 23.06.2011
Сообщений: 1,165
|
|
Сообщение от Maxmaxmaximus4
|
<div controller="Ctrl">
|
а почему не <div data-controller="Ctrl">?
|
|
09.12.2013, 12:09
|
Кандидат Javascript-наук
|
|
Регистрация: 08.12.2013
Сообщений: 142
|
|
Сообщение от DjDiablo
|
(группы гораздо больше свидетельствуют о структуре чем отдельные числа)
|
а я так и делал кстати) у меня в моей реализации было типа "участок с такого то индекса по такой-то - добавлен"
Сообщение от BETEPAH
|
а почему не <div data-controller="Ctrl">?
|
потому что припарсинге этот кастомный атрибут controller удаляется и в разметку попадает чистый html, а вообще ты можешь писать data-controller ui-controller ui:controller и.т.п. к тому же если добавят нативный атрибут controller который чо то делает, то когда человек писал приложение он явно имел ввиду именно наш контроллер а не тот нативный. если человек хочет использовать кастомный атрибут и нативный которые имеют одинаковое имя, то куда логичнее у нативным давать префикс чем кастомным так как кастомные встречаются куда чаще. по этому контроллеры человек будет обозначать так controller="Ctrl" а нативный атрибут контролллер так native-controller="true".
ntive-controller="true" заменится просто на controller='true', а controller="Ctrl" просто исчезнет из разметки. ну можно не native-, а nt-, не суть. Просто всегда бесило то что по какой-то неведомой причине люди тучу префиксов городят, по этому и начал писать свою либу, это одна из причин.
Это куда логичнее чем каждый раз городить тучу префиксов и захламлять код.
Последний раз редактировалось Maxmaxmaximus4, 09.12.2013 в 12:19.
|
|
|
|