• Как отфильтровать данный объект?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Непонятно, что конкретно надо. Варианты-то разные есть. Например:

    1. Один из элементов services должен содержать все категории, указанные в filterBy:

      users.filter(u => u.services.some(s => filterBy.every(f => s.categories.includes(f))))

    2. Должны присутствовать все категории, указанные в filterBy, но распределены по элементам services они могут быть произвольным образом:

      users.filter(u => filterBy.every(f => u.services.some(s => s.categories.includes(f))))

    3. Достаточно присутствия любой из категорий, указанных в filterBy, в любом из элементов services:

      users.filter(u => filterBy.some(f => u.services.some(s => s.categories.includes(f))))

    и т.д.
    Ответ написан
    Комментировать
  • Как лучше типизировать параметры у функции?

    @twoone
    Если опустить тот факт что параметры функции сложения обязанны быть определенны как обязательные, то конкретно тип undefined можно заменить опционалыным модификатором ? .

    function а (a?: number, b?: number) {}

    В остальном параметры функции декларации описать невозможно. Другое дело функциональное выражение которое можно описать с помощью типа.

    Для псевдонима
    type Sum = (a?: number, b?: number) => number;

    Для интерфейса
    interface ISum { (a?: number, b?: number): number; }


    И использование
    const sum: Sum = (a, b) => a + b;
    Ответ написан
    Комментировать
  • Redux не добавляет свойство в state. Что делать?

    0xD34F
    @0xD34F Куратор тега React
    case 'BASKET':
      return {
        ...state,
        products: state.products.map(n => n.name === action.payload
          ? { ...n, basket: true }
          : n
        ),
      };

    UPD. Ну это уже ни в какие ворота:

    onPress={() => this.props.addToBasket.bind(this, this.props.product.name)}

    Во-первых, функцию создаёте, но не вызываете. Во-вторых, не нужна тут привязка контекста:

    onPress={() => this.props.addToBasket(this.props.product.name)}


    const showProductsList = (type, maxlength) => {
        <...>
        if(product.basket == type & currentLength < maxlength) {

    showProductsList("true", 4)

    Нет, true не будет равно "true", убираем кавычки: showProductsList(true, 4).

    Может, прежде чем браться за react, стоит язык освоить, хотя бы основы?
    Ответ написан
    4 комментария
  • Как сократить скрипт, если возможно?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Заменить id на классы:

    const values = Array.from(document.querySelectorAll('.l'), n => n.value);
    document.querySelectorAll('.lt').forEach((n, i) => n.value = values[i]);
    document.querySelector('.block').style.borderRadius = values.map(n => `${n}px`).join(' ');
    Ответ написан
    Комментировать
  • Какие темы нужно пройти на нативном js, что бы освоить react+redux?

    approximate_solution
    @approximate_solution
    JS Developer. Angular\React\Vue\Ember
    но там нужен react+redux, так сказал тим лид, за месяц до начала стажировки мне надо научиться хотя бы делать тудушки.

    А потом люди удивляются, почему софт такое говно, что при нажатии на button тебя сносит лавиной говнокода. И разработчики обижаются на то, что фронтенд потерял "элитарность". Жду пост, где юный менеджер, просит старых джавистов показать ему диван, через который можно вскочить на разработку в интерпрайз Java.
    (Претендую на стажёра, поэтому вначале все равно буду все подтягивать на работе и дома ) .

    Уверен что на первом же собесе тим лид даст простое задание на js, которое Вы завалите, без обид. Я бы еще тим лида выгнал, если он Вас в команду возьмет, что бы сразу рудименты от веба удалять с "огорода".
    Ответ написан
  • Формирование зарплаты у веб разработчиков?

    Robur
    @Robur
    Знаю больше чем это необходимо
    вы сравниваете две колонки с цифрами на тостере.
    Они имеют весьма косвенное отношение к ситуации с "формированием зарплат разработчиков" в целом.

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

    Как всегда при желании можно найти любые частные примеры - человека на постоянке за 20тыс, и фрилансера с зп 300к и наоборот
    Ответ написан
    Комментировать
  • Формирование зарплаты у веб разработчиков?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Хороший вопрос!
    Я интересовался и получил ряд ответов от самих Заказчиков. Так, сказать, их мировозрение в этом плане.

    Со стороны Заказчиков:
    1. Раз ты работаешь на фрилансе - ты лох, потому, что не смог никуда устроиться.
    2. Если ты фрилансер - ты раб, который зарабатывает, чтобы не умереть с голоду. Поэтому, много тебе и платить не за чем.
    3. Нет гарантий для нас, что ты сделаешь всё на совесть. Мы не понимаем как сделать самим и, при этом, хотим хорошо сэкономить.
    4. (Про время) Мы оцениваем не сложность проекта и твоё умение и опыт, а время, которое никак не может быть дороже медианы фриланса по этому направлению.
    5. Нам нужно быстрее, т.к. это получается дешевле для нас, т.к. мы оцениваем время, а не сложность нашего проекта.
    6. Все фрилансеры низкоквалифицированные рабы.
    7. Каждый, кто мнит себя опытным и будет просить больше, будет сидеть без работы, т.к. высокая конкуренция и есть большой выбор исполнителей на рынке за копейки.
    8. Фриланс - это рабы IT сферы для нашего бизнеса.
    9. Мы всегда ищем тех, кого сможем обмануть в плане оплаты за работу и их почти 100%.
    10. Нам ничего не стоит сбросить сумму оплаты в любой момент сославшись на угрозу отрицательного отзыва.
    11. Мы не дорожим репутацией, в отличие от фрилансеров.
    12. Вы сами ничего не делаете: всё берёте с гитхаба уже готовое. За что вам платить?!

    (и ещё можно продолжать и продолжать...)

    И сразу возникает вопрос:
    Ждать ли роста дохода фрилансеров IT-сферы и когда?
    Ответ прост: когда все IT-шники поймут, что нужно ценить труд друг друга, что они не конкуренты друг другу, а единый целый "организм", который может сам за себя постоять и накормить вне зависимости от места работы и размера дохода.
    Итог: Не нужно работать и "ломать" глаза на тех, кто этого не понимает, а значит, и НЕ ЦЕНИТ!

    А пока разделяйте качество своих трудозатрат на "хлеб" и на "работу" и сразу озвучивайте 2 суммы заказчикам.
    Ответ написан
    10 комментариев
  • Что это за js-скрипт от оператора МТС который подключается на моем сайте?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    https://habr.com/ru/post/489528/ и ещё куча постов об этом.
    Операторы внаглую вставляют свою рекламу в http трафик.
    Используйте явно https для всего, в т.ч. и для самого своего сайта.
    Ответ написан
    Комментировать
  • Не работает структура объявленная в заголовочном файле?

    #include <stdio.h>
    #include "header.h"
    
    int main(int argc, char* argv[]) {
    
    	htype_t htval;
    	htval.num = 10;
    
    	printf("%i\n", htval.num);
    }
    Ответ написан
    1 комментарий
  • Не работает структура объявленная в заголовочном файле?

    @TheCalligrapher
    Так а что это такое вообще: htval.num = 10;?

    Это выглядит как инструкция (statement). В языках С и С++ инструкции могут находиться только внутри функций. Больше нигде. Это требование грамматики, т.е. элементарного синтаксиса этих языков. Зачем вы написали инструкцию в "чистом поле" за пределами функции? Это некорректно с точки зрения синтаксиса языка.

    Упрощенно выражаясь, в С и С++ код пишется внутри функций, а не снаружи.

    P.S. Ваш вопрос не имеет никакого отношения к "структуре, объявленной в заголовочном файле". Ни структуры, ни заголовочные файлы тут ни при чем.
    Ответ написан
    Комментировать
  • Почему переписывается последующий массив в 0?

    0xD34F
    @0xD34F Куратор тега JavaScript
    1. Метод splice изменяет массив.

    2. Массивы (как и прочие объекты) не копируются при использовании их в качестве аргументов функций.
    Ответ написан
    1 комментарий
  • Как вызвать функцию с разным числом аргументов по условию?

    twobomb
    @twobomb
    callback.apply(null,Object.values(obj))
    apply
    Ответ написан
    Комментировать
  • Как убрать фокус с элемента при повторном клике на него?

    aliencash
    @aliencash
    Партизан
    Метод blur - https://learn.javascript.ru/focus-blur
    Но лучше бы переделать всю эту кухню на добавление класса.
    Ответ написан
    Комментировать
  • Пропадает this в функции, как можно исправить?

    @jfswift
    Junior front-end dev.
    Передать filterShow в качестве коллбэка
    Ответ написан
    Комментировать
  • Как заложить полный развал своего проекта, удаление, поломку, остановку?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Прежде чем заниматься подобной чушью:
    - подумайте о последствиях - УК РФ ст. 272
    - все программисты так или иначе знакомы друг с другом :) Следовательно, придете Вы устравиваться в контору А, а Вам там "Это Вы уничтожили результаты своей работы в конторе Б"?
    Ответ написан
    9 комментариев
  • Как заложить полный развал своего проекта, удаление, поломку, остановку?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Если боитесь кидалова - не работайте с этим заказчиком ))
    Ответ написан
    4 комментария
  • Как вы справляетесь на удаленной работе?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Вряд ли вам сильно поможет знание того как другие справляются со своей работой.
    Силы и мотивация заканчиваются не просто так, всегда есть причина - ищите ее. Может быть и внутренняя и внешняя, может быть любой. от банального "перерабатываете" или "родня на мозг капает и отвлекает" до "вся моя жизнь тлен и эта работа не имеет никакого значения".
    Ответ написан
    1 комментарий
  • Как вы справляетесь на удаленной работе?

    @uroot
    Лично я делаю так:

    1) Слушаю непринуждённую музыку в процессе работы (SYML, например) если это мне не мешает. Отлично помогает проснуться.
    2) Работая, переодически делаю зарядку (фитнес трекер оповещяет о том, что я засиделся)
    3) Сплю на обеде
    4) Проветривание - это самое важное. Затхлый воздух убивает мозг.
    5) Прогуливаюсь после работы

    UPD: не так давно начал бегать 2-3 раза в неделю после работы или на выходных. Из музыки отлично стали заходить прямые трансляции на канале ChilledCow (просто мелодии без слов). Слушаю весь день на небольшой громкости, а то со словами музыка отвлекает.
    Ответ написан
    Комментировать
  • Кто может помочь определить шифрование?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    Это не шифрование, а обфускация.
    Учитесь уже, наконец, пользоваться правильными терминами!
    Ответ написан
    Комментировать
  • Кто может помочь определить шифрование?

    Robur
    @Robur
    Знаю больше чем это необходимо
    яваскрипт - структурно крайне простой язык и практически все шифрование сводится к игре в перестановку букв и дописание ненужного кода чтобы было запутаннее.

    как шифровать,

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

    чтобы "расшифровать" берете "_0x2e3074" и переименовываете в то что подходит по смыслу, если смысл пока не ясен, то в "param1"

    После деобфускации код перестаёт выполнять свои функции, это нормальное явление?

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