Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #51 (permalink)  
Старый 04.02.2010, 17:25
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от Kolyaj
Для такого случая как раз нужно указывать reduceInit: 0, т.к. иначе в первой итерации sum будет равна ссылке на элемент. По сути можно и условие из filter туда же засунуть, это на любителя, я предпочитаю разбивать задачи на более мелкие более простые подзадачи.
подожди, я имел в виду с другой реализацией
var reduceValue = options.reduceInit;
for( var i=0, j=0; i<els.length; i++ ) { 
...
        if( options.reduce ) 
            reduceValue = options.reduce.call( options.scope, reduceValue, el, j );

и реализация стала проще. Можно добавить еще значение по умолчанию 0/пустая строка/whatever

Сообщение от Kolyaj
Это библиотечка, т.е. код с высокой реюзабельностью, поэтому для данного кода я ищу компромисс "эффективность кода -- максимально малый размер -- приемлемая читабельность"
а размер зачем? А как ты решения принимаешь? На глаз?Я пока рассчитываю, что, по-крайней мере в большинстве случаев, не имеет смысла жертвовать читабельностью ради производительности. В частности, если не пытаться реализовать поиск по сферическим селекторам в вакууме

Ну и я не говорил, что нужно воспринимать тот код, как готовые решения. Можно, например, просто парсинг селекторов вынести
Ответить с цитированием
  #52 (permalink)  
Старый 04.02.2010, 17:33
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от x-yuri
я имел в виду с другой реализацией
Все-таки лучше оставить стандартное для reduce поведение, чтобы не путаться.

Сообщение от x-yuri
а размер зачем?
Хм, ну чтоб меньше был.

Сообщение от x-yuri
А как ты решения принимаешь? На глаз?
Разумеется всё сугубо субъективно и по настроению. Наутро встану -- перепишу Обсудить-то мне это не с кем
Ответить с цитированием
  #53 (permalink)  
Старый 05.02.2010, 08:36
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от Kolyaj
Разумеется всё сугубо субъективно и по настроению. Наутро встану -- перепишу
вот это мне и не нравиться. Ты ставишь читабельность на третье место, не зная, что это тебе дает на практике
Ответить с цитированием
  #54 (permalink)  
Старый 05.02.2010, 08:55
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от x-yuri
вот это мне и не нравиться.
Ну для себя-то у меня всё обосновано, а больше мне некому обосновывать. Если хочешь, можешь форк сделать, а там и смержим что-нибудь

Сообщение от x-yuri
Ты ставишь читабельность на третье место
Это не значит, что она не важна в принципе. Просто если из двух вариантов читабельный сильно больше места занимает или работает неэффективно, то я выберу нечитабельный вариант. Но это должна быть большая разница в размерах, байты я, конечно, не считаю. В прикладном коде всё наоборот, на первом месте читабельность, т.к. его постоянно переписывать приходится.

Сообщение от x-yuri
не зная, что это тебе дает на практике
Это мне даёт маленькую функцию с огромными возможностями по выборке, которую я могу подключить без опаски притянуть за ней огромный фреймворк. Поэтому размер и эффективность на первом месте -- требования к функции меняться не будут, а значит и переписываться она, в идеале, не будет, только правка багов. Но, разумеется, код должен быть максимально читабелен.
Ответить с цитированием
  #55 (permalink)  
Старый 05.02.2010, 16:30
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от Kolyaj
Если хочешь, можешь форк сделать, а там и смержим что-нибудь
да я уже немного попробовал, пока что ты смержил только баг Ну понятно, в общем-то, проиритеты разные. А вообще, хочу позже что-нибудь выложить. Пока рано
Ответить с цитированием
  #56 (permalink)  
Старый 18.04.2010, 18:35
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Метод clone в http://alljs.ru/crossjs/source/lang/Array.js правильно работает только с одномерными массивами. Так и задумано?
var array1 = [[]];
var array2 = array1.slice(0);
alert([
    array1 === array2,
    array1[0] === array2[0]
]);
Ответить с цитированием
  #57 (permalink)  
Старый 18.04.2010, 20:33
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Octane
Так и задумано?
Да я, честно говоря, и не задумывался об этом ))
Ответить с цитированием
  #58 (permalink)  
Старый 10.09.2010, 18:34
Аспирант
Отправить личное сообщение для stopkran Посмотреть профиль Найти все сообщения от stopkran
 
Регистрация: 12.12.2009
Сообщений: 54

В файле Element.js в функции M.removeClass используется регэксп:

new RegExp('($|\\s)' + cl + '(?=\\s|$)', 'g')

Вероятно, в первой скобке вместо доллара должна быть крышка (^)?
Ответить с цитированием
  #59 (permalink)  
Старый 10.09.2010, 21:39
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

stopkran,
спасибо, поправил. Неприятный баг.
Ответить с цитированием
  #60 (permalink)  
Старый 12.09.2010, 07:43
Аспирант
Отправить личное сообщение для stopkran Посмотреть профиль Найти все сообщения от stopkran
 
Регистрация: 12.12.2009
Сообщений: 54

А вот и небольшая критика M.addClass: http://ir2.ru/show-hide-toggle.aspx (там больше критики obj.style.display = "none", поэтому отдельная статья)
Ответить с цитированием
Ответ



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

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