• Изменение переменной из функции?

    wapster92
    @wapster92 Куратор тега JavaScript
    Потому, что в коде, на момент исполнения выражения в sum let place = '', link = '', power = '' уже имеют значения, меняют их они уже гораздо позже.
    Ответ написан
    Комментировать
  • Как в обычном JavaScript правильно получить доступ к нужному дочернему элементу?

    Stalker_RED
    @Stalker_RED
    const table = document.getElementsByTagName("table")
    в переменной table будет HTMLCollection, а не один элемент.

    tabledata = table.childNodes[0] // ошибка, у коллекции нет свойства childNodes
    исправить не сложно:
    const tables = document.getElementsByTagName("table")
    const tabledata = tables[0].childNodes[0]
    теперь в tabledata первый узел из первой таблицы. Непонятно только зачем называть пустой текстовый узел словом tabledata.

    const columnsdata = tabledata.getElementsByTagName("col"); // ошибка, у пустого текстового узла нет дочерних элементов

    Так можно и дальше продолжать. Вы лучше почитайте внимательнее что возвращают методы, которые вы используете. И присмотритесь в querySelector и querySelectorAll
    Половину кода можно выбросить заменив на
    const table = document.querySelector('table') // первая попавшаяся таблица
    const cols = table.querySelectorAll('col') // NodeList c колонками
    cols.forEach(col => console.log)

    браузер не хочет выполнять выполнять операции с сhildren и childNodes
    что значит "не хочет"? На самом деле он не может выполнять те команды, которые вы ему понаписали, и сообщает об ошибке. Которую вы даже не стали приводить в вопросе :)
    Ответ написан
    3 комментария
  • Как просуммировать массив?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const grouped = arr.reduce((acc, n) => {
      const [ , month, year ] = n.x.split('.');
      (acc[year] ??= Array(12).fill(0))[month - 1] += n.y;
      return acc;
    }, {});
    Ответ написан
    Комментировать
  • Как просуммировать массив?

    @cython
    В js, у массивов есть метод reduce, который позволяет превратить массив в 1 значение, при помощи переданной функции:
    const reducer = (acc, val) => {
      if (val.x) {
        let key = val.x.slice(3);  // получаем ключ вида mm.yyyy, если только mm надо, то val.x.slice(3, 5)
        if (!key in acc) {
          acc[key] = 0;
        }
        acc[key] += val.y;
      }
      return acc;
    }
    let result = array.reduce(reducer, {});
    Ответ написан
    Комментировать
  • К какому специалисту обратиться?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    - чтобы проанализировать все действия который выполняет менеджер
    - автоматизировать/систематизировать их

    Аналитик

    - и в итоге - создать saas-продукт

    Команда разработки, включающая около десятка разных специалистов.
    Ответ написан
    2 комментария
  • А вы правда умеете программировать?

    @cicatrix
    было бы большой ошибкой думать
    Я вообще не считаю, что запоминание ключевых слов и названий функций, пусть даже из стандартной библиотеки какого-либо языка может сделать кого-то программистом. Тем более, что языки и библиотеки имеют тенденции устаревать, а на их смену приходят всё новые языки. Я начинал с Бейсика, потом Фортран, потом Си, потом Паскаль, потом плюсы, потом "до диез", потом JS, потом Python. Половины из того, что знал, разумеется, уже не помню. Но по прежнему себя, я думаю, имею право называть программистом, потому что, пусть и с большим скрипом, я могу писать на чистом асме, причём, обладая даташитами, на любой платформе, но, разумеется, в реальной жизни я этого не делаю практически никогда. Однако, знание того, как в итоге твой программный код исполняется, что конкретно происходит в процессоре, как из транзисторов собираются логические вентили, как потом эти вентили организуются в блоки процессора, как данные хранятся в памяти, как работает стек протоколов TCP/IP, позволяет мне себя считать программистом, хотя я и не имею в этой области формальной корочки об образовании. Кроме того, эти знания позволяют мне применять для решения задач практически любой язык программирования. Да, безусловно, тонкостей многих языков я не знаю, и много специалистов просто уделают меня "под орех", если речь зайдёт о написании кода на скорость. Однако, за годы практики, у меня скопился неплохой репозитарий практически готовых решений на практически все случаи жизни, которые написаны не Васей со stackoverflow или github, а мной лично. Если хотите, моя папка "Projects" и есть мой блокнот, где я держу свои записи.
    Ответ написан
    Комментировать
  • А вы правда умеете программировать?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Очень показательный вопрос.
    И очень, очень, очень показательные ответы.
    Наглядно показывают то, как обыватель представляет себе программирование:
    назапоминать побольше "функций", в продвинутом варианте - записывать на бумажку, и совсем уровень бога - уметь пользоваться гуглем. Для поиска этих самых функций.

    Слово "алгоритм" ни в вопросе, ни в многочисленных ответах не встретилось ни разу.

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

    Но оказывается не только пехапешная масса, и не сарказм, а суровая правда жизни. На всем тостере за пол-суток не нашлось человека, который хотя бы примерно представляет себе, что такое программирование. Одни художники.

    Вообще, я тут подумал что разница между программистом и таким вот "рисовальщиком" (как мне правильно попеняли в комментах, я обижаю своим сравнением настоящих ухдожников) очень простая - рисовальщик боится не запомнить все функции, а программист пишет свою. Как только ты написал свою первую функцию, чтобы избежать рутинного повторения в стандартной операции - ты сделал первый шаг к тому, чтобы стать программистом. И опа - ты уже можешь забыть десяток стандартных функций, посольку у тебя уже только одна, которая выполняет работу тех десяти. собственно, работа программиста и стстоит, в каком-то смысле, в том, чтобы не использовать (и - соответственно - не запоминать) стандартные функции. У него есть библиотека своих функций
    Ответ написан
    5 комментариев
  • А вы правда умеете программировать?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    значит "запомнить много функций" или значит "запомнить и знать что и где искать в гугле и все понимать"?


    Детский сад, штаны на лямках. Уметь программировать - это решать поставленную задачу качественно и в срок. Методология решения - ну, она может быть непосредственного начальника заинтересует, и то, если на code review ему не понравится, как написано. А руководству - ему аще плевать, оно оценивает с точки зрения бизнеса.

    Лично я ничего не записываю. Основной набор функций запоминается сам по себе вместе с методологией решения общих задач, конкретный формат вызова, список параметров, коды возврата и прочее - всегда есть ман и гугл. Нельзя обьять необьятное. А если на языке работаешь редко - так и элементарщину приходится гуглить - я вот на перле например пишу раз в три месяца - ессно я многое не помню.
    Ответ написан
    Комментировать
  • Как так-же стилизовать input file upload?

    @Steppp
    код от класса visually-hidden можешь на гуглить, он скрывает input
    тоесть ты input и label связываешь через for id,
    и стилизуешь label как тебе угодно)))

    <div class="form__input-file">
        <input class="visually-hidden" type="file" id="file">
        <label for="file">
            тут рисуй рамку и что хочешь делай
            <span>Добавить</span>
        </label>
    </div>
    Ответ написан
    2 комментария
  • Правда ли что Angular имеет больший порог входа чем React?

    Xuxicheta
    @Xuxicheta Куратор тега Angular
    инженер
    Правда ли что энтерпрайз фреймворк имеет больший порог входа чем шаблонизатор? Конечно правда, в нем просто намного больше всего.
    "спорный" код можно встретить везде, хотя джуны на ангуляре пишут примерно одинаково. Но в Ангуляре их поменьше, за счет как раз порога входа. На Rx многие ломаются :)
    Ответ написан
    Комментировать
  • Почему выдает пустую результат при парсинге веб страницы?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Вам нужно чуть лучше овладеть навыком отладки своих скриптов.

    Например, банально, кроме console.log(a); можно добавить console.log(html); сразу после того, как в этой переменной что-то должно появиться. Если появилось, то значит что-то не так после этой строки. Если не появилось, то что-то не так до этой строки. Из всевозможных ошибок мы сразу убираем половину.

    Таким образом, методом исключения (то есть каждый раз исключая половину ошибок), можно добраться до того места, где ошибка есть, и дальше будет легко понять её.

    Процесс отладки доступен только тому, кто имеет возможность запустить скрипт в тех условиях, где возникает ошибка. Все остальные люди могут лишь гадать, в чём же дело. Поэтому лучше не задавать вопросы, где для получения ответа нужна отладка. Кроме того, это работа, которую нужно просто сделать, и для которой не нужен эксперт.
    Ответ написан
    Комментировать
  • Для Django на Frontend какой js использовать лучше?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    На основании своего опыта, для фронта могу порекомендовать связку HTML, CSS, JS (es6)
    Ответ написан
    1 комментарий
  • Как сделать сортировку массива объектов по имени(name)?

    arr.sort((a, b) => a.name.localeCompare(b.name));
    Ответ написан
    Комментировать
  • Многопоточность в Си в ассемблерном исполнении - возможно?

    15432
    @15432
    Системный программист ^_^
    В Си многопоточность.обычно реализована в библиотеке pthreads.h
    Многопоточность реализуется операционной системой. pthreads - просто библиотека, чтобы операционной системе сказать, мол, вот тебе отдельный поток для запуска

    причём Си можно отлаживать как код на ассемблере
    Ну да, Си всегда сначала компилируется в ассемблер, любым дизассемблером готовую программу можно разобрать на кусочки.

    Прочитал в интернете, что ассемблерная программа может выполняться только на одном ядре.
    Покажите, где такая ерунда написана

    Как тогда реализована многопоточность в Си
    В Си - просто интерфейс управления многопоточностью. Сама многопоточность - в операционной системе.

    раз есть эквивалентный код на ассемблере например, в gnu debugger
    Как в Си, так и в ассемблере вы просто увидите "вызвать pthread_create", и всё
    Ответ написан
    6 комментариев
  • Как перемещать скролл с помощью движения мыши?

    Kozack
    @Kozack Куратор тега JavaScript
    Thinking about a11y
    Комментировать
  • Вылезла ошибка "TypeError: Cannot read property 'filter' of undefined", знает кто как её решить?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    files будет равняться undefined, если пришла ошибка err. Смотрите сначала ошибку, и если ее нет, то уже пытайтесь итерироваться по файлам.
    Проверьте, есть ли у вас вообще директория с таким именем E:\game\kioko\cmds
    Ответ написан
    Комментировать
  • Магия int при делении на float?

    SagePtr
    @SagePtr
    Еда - это святое
    Цифры странные берутся, когда в ячейке памяти хранится один тип, а printf ожидает увидеть другой, потому неправильно представляет его. Округлять или ещё как-нибудь преобразовывать типы за вас printf не будет, что ему скажут, то он и выведет.
    Ответ написан
    Комментировать
  • Как из плоского объекта сделать вложенный?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const createNestedObj = plainObj =>
      Object.entries(plainObj).reduce((acc, [ path, val ]) => {
        const keys = path.split('.');
        const key = keys.pop();
        keys.reduce((p, c) => p[c] ??= {}, acc)[key] = val;
        return acc;
      }, {});
    Ответ написан
    Комментировать