Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #51 (permalink)  
Старый 09.12.2013, 03:24
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от Maxmaxmaximus4
 
Регистрация: 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.
Ответить с цитированием
  #52 (permalink)  
Старый 09.12.2013, 03:48
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Maxmaxmaximus4, конечно не схавало, потому что ты изменил так что учитывается порядок и мне кажется оптимальнее менять на основе replace
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #53 (permalink)  
Старый 09.12.2013, 03:50
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от Maxmaxmaximus4
 
Регистрация: 08.12.2013
Сообщений: 142

cyber, слушай все мои изменения это то что я добавил i в indexOf()
когда я убираю результат тот же, когда я использую твою функцию результат тот же)

Сообщение от cyber
оптимальнее менять на основе replace
немного не понял, ты к тому что replace менее дорогая операция и нам приемущественно выцеживать её чем ремувы и инсерты?

в принципе есть идейка небольшая как replace так прокачать чтобы вначале он все свои дела делал, чтобы все что можно заменить им, заменялось им.

Последний раз редактировалось Maxmaxmaximus4, 09.12.2013 в 03:53.
Ответить с цитированием
  #54 (permalink)  
Старый 09.12.2013, 04:15
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Maxmaxmaximus4,
какие данные у тебя в массиве лежат ? дом объекты ?
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #55 (permalink)  
Старый 09.12.2013, 04:52
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от Maxmaxmaximus4
 
Регистрация: 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.
Ответить с цитированием
  #56 (permalink)  
Старый 09.12.2013, 05:05
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от Maxmaxmaximus4
 
Регистрация: 08.12.2013
Сообщений: 142

cyber, блин, и если честно я вообще не понимаю как твой алгоритм работает, ну то есть понимать то понимаю, но не понимаю почему то должно работать и как "учитывать порядок"
Ответить с цитированием
  #57 (permalink)  
Старый 09.12.2013, 06:58
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Цитата:
Привет Ашот, тебе 15 лет!
ты с лолей на мальчиков переключился ? ))))))))))

Чото дикую хреновину максимус ты придумал
Но в целом любопытно. Хотя поиск оптимального решения будет вероятно медленнее чем работа с dom. Вероятно нужно работать не с одним числом а с группами чисел (группы гораздо больше свидетельствуют о структуре чем отдельные числа). Так как последовательности чисел и групп можно объяснить по разному то мы получим дерево вариантов в котором нам придется искать кратчайший путь.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 09.12.2013 в 10:32.
Ответить с цитированием
  #58 (permalink)  
Старый 09.12.2013, 09:19
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 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 890 2 90 60
33 90 3 890 567 2 890 60
совпали 90 2 90 (5 совпадений)

3)
33 567 890 2 90 60
33 90 3 890 567 2 890 60
совпали 890 2 90 (6 совпадений)

4)
33 567 890 2 90 60
33 90 3 890 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.
Ответить с цитированием
  #59 (permalink)  
Старый 09.12.2013, 09:56
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Сообщение от Maxmaxmaximus4
<div controller="Ctrl">
а почему не <div data-controller="Ctrl">?
Ответить с цитированием
  #60 (permalink)  
Старый 09.12.2013, 12:09
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от Maxmaxmaximus4
 
Регистрация: 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.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как можно найти разрешение рабочей области браузера? Влад Общие вопросы Javascript 3 20.07.2009 10:18
Как найти конец плоского файла Don_001 Общие вопросы Javascript 1 07.07.2009 12:47
Как можно изменить расстояние между панелями overlay и filmstrip в фотогалереи? Honey jQuery 0 29.06.2009 10:16
как найти нужный объект? `p r o x y jQuery 2 05.05.2009 01:12
Как найти путь к файлу для модификации? JuliaMilan Firefox/Mozilla 0 31.03.2009 14:06