Stefan
как с этот коллекцией работать ?
Sergey
Ты сначала получи то, что тебе надо, потом перегони в массив и сортируй по value или по чему ты там сортируешь
🤴👷‍♂️🦸‍♂️🧚‍♀️
Привет как мне записать Function.prototype.myMethod в виде myMethod extends Function или как? вызывать надо function.myMethod()
ytka
приветствую, заплачу за написание небольшой Js (до 15 строк), сделать нужно сегодня (по мск) - если интересно пишите в личку, все расскажу
Dzhanik
@hitmaker
Dzhanik
👌
👍
Leon
Доброй ночи всем неспящим! Возник вопрос, не знаю, как правильно загуглить именно его. Как получается так, что если задать массив таким способом: a = []; a[100] = 1; То метод a.forEach() сделает всего 1 итерацию, в которой будет фигурировать значение отличное от undefined (в нашем случае единица) Действительно ли он не проходит по всем итерациям от нуля, или же это своего рода пост-обработка с отсеиванием empty значений? Вопрос, собственно, по эффективности.
Leon
Если в методе реализовать счетчик, показывающий количество вызовов функции, то он тоже вернет единицу.
Maksim
forEach() calls a provided callback function once for each element in an array in ascending order. It is not invoked for index properties that have been deleted or are uninitialized (i.e. on sparse arrays).
Leon
forEach() calls a provided callback function once for each element in an array in ascending order. It is not invoked for index properties that have been deleted or are uninitialized (i.e. on sparse arrays).
Да, то, что метод не вызывается я проверил экспериментально. То же самое при обращении через for in Но на уровне реализации языка, есть ли разница при создании массива из одного элемента или же из миллиарда, лишь один из которых будет задан?
Maksim
о каких миллиардах речь? в твоем примере выше было только одно значение в массиве
stay
Я тоже не совсем понимаю, что гугл имеет ввиду вот этими empty x 1000
Maksim
Я тоже не совсем понимаю, что гугл имеет ввиду вот этими empty x 1000
ничего, это вывод в консоль, а не внутреннее строение объекта
Leon
о каких миллиардах речь? в твоем примере выше было только одно значение в массиве
Я неправильно выразился. Меня вводит в заблуждение возвращаемая длина массива. И я думаю, проверяет ли js все индексы на существование или нет?
stay
Ну, в цеом логично
Snake
В случае с a[10000] = 1
Snake
У тебя остальные 9999 ячеек тоже будут существовать.
Maksim
У тебя остальные 9999 ячеек тоже будут существовать.
с чего? я даже скриншот приложил с выводом в консоль
Snake
Проверь array.length
Maksim
Проверь array.length
смотри в скрин
Snake
А что не так на скрине?
Maksim
там есть и length и единственный елемент массива
Maksim
на скрине как раз все так, не так в том что ты говоришь
Snake
Ну так undefined он пропустит
Maksim
кто он?
Leon
У тебя остальные 9999 ячеек тоже будут существовать.
Вот, в этом и вопрос. Значит и работа с таким массивом потребует больше времени? Я просто не понимаю низкоуровневой механики этого процесса - как-то же js должен отсеять пустые элементы, чтобы определить, на каких надо передавать управление в foreach
Snake
Итератор. Либо выведет тебе undefined x 10000
Snake
В массиве не может быть пустых эллементов, и не должно быть в принципе.
Snake
Ты когда a[10000] = 1 сделал - задал длину массива в 10000 ячеек
Maksim
Итератор. Либо выведет тебе undefined x 10000
от того что итератор что-то выведет или не выведет еще не значит что в массиве это физически присутствует
Maksim
бля, парни, вам сюда https://t.me/js_noobs_ru
Leon
Не думаю, что в чате новичков разбирают тонкости низкоуровневой реализации
stay
Не думаю, что в чате новичков разбирают тонкости низкоуровневой реализации
Можешь покурить спеку V8. если хочешь глубоко шарить
stay
https://ponyfoo.com/articles/an-introduction-to-speculative-optimization-in-v8
stay
https://v8.dev/docs
Leon
Да, всё-таки придется лезть в доки восьмерки Я надеялся, что кто-то помнит с лету)
Snake
На самом деле достаточно просто понимать как работает массив, что бы решить данный вопрос. В твоем примере скорее нужно знать тонкости работы foreach, а не массивов. По факту - если ты как либо объявляешь массив длинной в 10000 - все 10000 ячеек будут физически существовать.
Leon
В любом случае, всем спасибо)
Leon
Так что сомневаюсь, что дело только в foreach
Leon
Нет, конечно)
Leon
Хотя, у меня вообще теперь много вопросов Если он не перебирает все, то должен хранить непустые индексы хотя бы
Maksim
Хотя, у меня вообще теперь много вопросов Если он не перебирает все, то должен хранить непустые индексы хотя бы
ты пытаешься понять как работают конкретные реализации итераторов в js они работают по спеке, а не как захочет левая пятка, открой спеку и прочти как они итерируют
Maksim
Хотя, у меня вообще теперь много вопросов Если он не перебирает все, то должен хранить непустые индексы хотя бы
Array.prototype.forEach.call({0: 1, length: 100}, i => console.log(i)); // 1 Внезапно forEach может работать даже не с массивом в привычном понимании этого слова
Leon
Все же да, эксперимент показал, что JS перебирает все значения.
Leon
Вернее, перебирает не сам JS, а движок оного
yandexphp
Всем привет ребят. Хотел спросить нет ли готовой функции типо такого алгоритма? function calcPages(value, limit){ let v = 1; value = value ? value : 0; limit = limit ? limit : value > 0 ? value : 0; while(Math.sign((value - limit)) === 1){ value -= limit; v++; } return v; } // Examples calcPages(14, 5); // 3 calcPages(129, 5); // 26 calcPages(4,5); // 1
yandexphp
calcPages(14, 5) - 14 - 5 - 5 - 5 = -1 = 3
yandexphp
Если кратко то это типо получить всего кол-во отображаемых стр. с данными по limit'у
yandexphp
Например: Сервер возвращает всего записей: 14 В клиенте выбрали отображение по 5 шт. на страницу
yandexphp
Вот гуглил искал что-то типо получение кол-во стр.. Но не нашел нечего годного
yandexphp
Пришлось костылить. Ну и решил тут у братства народов попросить помощи. Вдруг этот костыль и не нужен
yandexphp
Все таки ответ был рядом)) Спасибо!))
stay
Просто делишь и округляешь к большему целому -.-
Dmytro
хлочики, а кто-то может подсказать шрифт для редактора, где => преобразуются в единый символ? web bos’а смотрел, но там во-первых, платный шрифт, во-вторых, он почему-то тоже не делает единый символ
Denisio
firacode
Denisio
https://github.com/tonsky/FiraCode
Dmytro
ну это понятно, но энивей 200$ на шрифт нет)
Denisio
200 ебанулися
Denisio
вон фиракод няшка
Dmytro
страшненький((
Puck
Ребят, посоветуйте легкий в изучении браузерный фреймворк для работы с API? Надо сайт с Django http перенести на Django Rest + JS морда. Знаю что есть vue.js... больше ничего не знаю
nes
есть кто шарит в алгебре? нужно реализовать эту формулу в нормальное уравнение для JS без использования конструкций (if/else, b?x:z) d = f(x) = {0 < x%6 < 4} x = любое произвольное число, в моем случае от 30 до 35
Dan
👌
꧁༺ĤŐŔŃŶ
сеп
nes
А что такое «уравнение для js»?
простое уравнение, всё равно одна бутылка
Maksim
простое уравнение, всё равно одна бутылка
В js нет уравнений в том понимании в котором они есть в алгебре, так что не ясно что именно ты хочешь получить. Скинь пример с if/else хотя бы
Maksim
Switch или через объект
nes
Switch или через объект
я же высказывал своё не желание использовать конструкции