Задать вопрос
  • Как это понять?

    Александр очень хорошо всё расписал.

    И да, в этом случае вовсе не нужно имитировать иммутабельность, так как чаще всего аккумулятором выступает - если речь о сложных типах - объект/массив, который мы создаём внутри функции. А значит мы не можем как-либо навредить внешнему коду.
    Такой подход для reduce - отличное место для утечек памяти на ровном месте, если данных будет немного побольше.

    Поэтому можно переписать функцию таким образом:

    const countCharPairs = str => {
        const countByCharPair = {};
    
        const reduce = (acc, item) => {
            if (item in acc) {
                acc[item] = acc[item] + 1;
            } else {
                acc[item] = 1;
            }
            return acc;        
        }
    
        return str.split(' ').reduce(reduce, countByCharPair);
    }


    Здесь мы контролируемо мутируем объект чтобы избежать утечки памяти. Но ещё раз подчеркну, что этот объект создаётся внутри функции, а значит никаких сайд-эффектов при его мутации не случится.

    PS: Отвечаю на ваш исходный вопрос - "Как это понять?". Если вы столкнулись с чем-то непонятным - разбивайте это непонятное на части. Так вы сможете отделить то, что вы знаете от того, что не знаете, и устранить белые пятна. В данном случае, я полагаю, это был rest/spread
  • Как заполнить name значением?

    kosmok

    • Выложите своё решение в какой-нибудь песочнице, чтобы тем, кто готов вам помочь, было удобно посмотреть ваш код, и подсказать вам.
    • Учите js. Jquery не решит тех проблем, которые у вас есть.
    • "через jquery, у значение name должен быт равен value ключа" эту фразу
      и всё сообщение в целом очень трудно читать, вы смешали описание задачи с предлагаемой реализацией.
    • Разбейте свою задачу на части и попробуйте решить её на js.
  • Стоит ли идти в веб-разработку?

    Почти круглосуточно =)

    Ну, на самом деле, от 4 до 12 часов в день.
    Плюс я пробовал выйти на фриланс тогда и делал маленькие глупые заказы, которые приносили больше опыта чем денег.
  • Как сбежать с фриланса?

    Я думаю, что имеет смысл позвонить в компанию и уточнить их ожидания.
  • Что будет быстрее работать?

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

    Прошу прощения.
  • Что будет быстрее работать?

    Да, сэр, у вас явно опечатка.

    Любители стрелять себе в ногу могут пользоваться первым способом для выборки. Нормальные же люди пользуются первым способом когда программно надо пробежаться по потомкам/родителям и что-то найти.
  • Какую выбрать книгу для изучения JavaScript?

    Ignatiy2, Ничто не мешает вам её перечитывать =)

    "Прочитал" её года 4 назад. Многое было сложно и непонятно.
    Сейчас прочитал не найдя почти ничего нового, кроме регулярок и ещё пары нюансов, но тем не менее.

    Вы можете брать блок, если он вам даётся тяжело - пропускайте, идите к следующему, если с каждым разом всё сложнее - отложите книгу и вернитесь через 1-2-3 месяца программирования.
    Или наоборот, дробите зубами гранит пока не поймёте один блок(параграф, главу, часть) книги, и идите дальше.

    В принципе, по-моему, при самостоятельном обучении нет правил чтения проф. литературы.
  • Какую выбрать книгу для изучения JavaScript?

    Очень любопытный взгляд на тему задач, как ментор возьму на заметку.
    Спасибо =)
  • Как сверстать анимацию заполнения шкалы?

    Алексей Макареня, Я вот разве что думал о css transition вместо использования js
  • Как отследить изменение свойства объекта?

    Добрый день.

    А какую вы преследуете цель?
  • Как (и возможно ли) дотянуться до Junior JavaScript Developer в кратчайшие сроки?

    Привет.
    Ситуация и правда не самая простая.

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

    Если вам интересно - могу и вам предложить свою кандидатуру в качестве ментора.

    А в остальном все правы:
    • Изучать нужно огромные пласты информации, поэтому два месяца - капля в море. (но, как видно из текста выше - работу найти можно)
    • Работу искать нужно начинать уже сейчас. Просить тестовое. Стараться найти варианты, которые были бы интересны и вам, и работодателю, если последний выходит на подобный контакт.
    • Вам реально нужно ГОРЕТЬ желанием ковыряться в вебе. Это не просто чик-чик, тяп-ляп и в прод (хотя и такое бывает), и горы денег. (Как бы обидно это не звучало)
    • etc


    Если собеседования проваливаются одно за другим - ни в коем случае не расстраиваться. Здесь важно понять, что вы не знаете. А ещё лучше - спросить, чем ваши знания не удовлетворили компанию, если компания и люди адекватные, они вам всё расскажут, и у вас появится блок для изучения.

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

    PS. Про менторство - это бесплатно. Если нужно - пишите в телеграм @YuraKostin

    Успехов вам.
  • Как написать 1 функцию для 4 картинок?

    Можно даже, наверное так:

    const images = document.querySelectorAll('.image');
    images.forEach(img => {
        img.src = img.src.match('img/like.png') ? 'img/like-full.png' : 'img/like.png';
    });
  • Какой код начать писать на JS?

    А какие проблемы вы хотите решать на jQuery, которые не можете решить на js?

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

    Если и брать фреймворк сейчас, то имхо Vue/React. Порог входа довольно низкий. Но только после уверенного овладения vanilla js.
  • Какой код начать писать на JS?

    Уже миллион раз говорилось, что не стоит начинать использовать фреймворки, если вы не знаете сам js.
  • Какой код начать писать на JS?

    Лучше без jQuery.
    Ванила сейчас вполне себе прекрасна, чтобы начинать свои эксперименты на ней.
  • Что входит в обязанности frontenda (вопрос к работающим)?

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

    Возможно скоро я буду как вы, но в таком случае, я буду надеяться на то, что у меня станет немного меньше требований к себе просто потому, что я успею изучить где-нибудь 70% того, что хочу.
  • Что входит в обязанности frontenda (вопрос к работающим)?

    Без максимализма нельзя. От себя нужно требовать.
    Например, я никак не могу проникнуться функциональным программированием. Поэтому надеюсь, что в скором времени у меня появится, как ни странно, время попробовать язык, в котором можно писать только в функциональном стиле.
    Как сказал Александр Соловьёв https://www.youtube.com/watch?v=R4sTvHXkToQ&t=5s примерная цитата "производят изменение в мозгу, которые делают программиста лучше".

    Я вовсе не считаю, что мой субъективный взгляд - истина, однако лишних знаний не бывает. И мне не раз приходилось использовать grep, find, history, cat, less, echo и другие команды.

    Каждый сам для себя решает, что ему нужно.

    Я знаю и умею лишь часть того, что написал. Но стремлюсь к своему "идеалу". И указал я в конце-концов далеко не всё, что хотел бы уметь. Не как фронтендер, а как разработчик.
  • Есть ли смысл использовать формы?

    Конечно.
    И везде я стараюсь писать адекватный семантичный код, так как вам наверняка будет проще разобраться именно в нём, чем в том, что по моему мнению могло бы заменить семантичные элементы.

    Кхм.. Попробую по-другому.

    React и Vue позволяют рендерить компоненты с примесью логики и хранения состояния. Это не отменяет того, что эти самые компоненты должны быть реализованы также адекватно, как если бы вы просто верстали сайт и добавляли сверху js логику.

    Вообще, чем грамотнее и правильнее вы пишете код, тем проще его поддерживать. И это в первую очередь должно волновать вас и ваших коллег.
  • Где используются прототипы, наследование в JS приложениях?

    Честно говоря, я каждый раз, когда пытаюсь вспомнить, для чего я использовал call или apply - забываю все кейсы, кроме одного-двух.
    В первую очередь удобно использовать apply для вызова какого-то метода, которые принимает конечное количество аргументов.
    И я приводил этот пример:
    Math.max.apply(null, [1,2,3,4,5])

    А прототипы.
    Ну фишка в том, что важно понимать хотя бы отдалённо, как и что работает под капотом.
    Вы вот, например, пилите на ангуляре.
    А мы сейчас, пока что, пилим на чистом js.
    Так вот я использовал классы, так как мне было нужно сделать абстрактный класс и два дочерних.
    Но не будь сейчас ES6, я бы всё это напиливал через prototype.

    Это как например, не понимать в школе, зачем нужна математика, а потом, став инженером, думать "Ах, что же это я, не учил математику, она мне так сейчас нужна чтобы понять это и это".