Сообщение от x-yuri
|
Имхо, лучше всегда вызывать для каждого элемента, т.е. что-то типа
|
Для такого случая как раз нужно указывать reduceInit: 0, т.к. иначе в первой итерации sum будет равна ссылке на элемент. По сути можно и условие из filter туда же засунуть, это на любителя, я предпочитаю разбивать задачи на более мелкие более простые подзадачи.
Сообщение от x-yuri
|
а идеи из соседней темы тебе не нравятся?
|
Это библиотечка, т.е. код с высокой реюзабельностью, поэтому для данного кода я ищу компромисс "эффективность кода -- максимально малый размер -- приемлемая читабельность" (в порядке убывания важности). Твой первый вариант без документации больше, чем мой с документацией. Со вторым вариантом проблема другая: там нужно сначала преобразовать NodeList в массив (раз проход), применить filter (два проход), применить map (три проход), reduce (четыре проход). (Хотя от первого прохода можно избавиться.) А эта функция для того и писалась, чтобы можно было выдернуть любую (почти) информацию из DOM-дерева за один проход.