• Как получить значение из объекта?

    @StockholmSyndrome
    На входе есть массив, который я перевожу в объект.
    нет, метод map возвратит массив

    скорее всего, вы имели в виду:
    const b = Object.fromEntries(a); // {1: "Вася", 2: "Петя", 3: "Коля", 4: "Федя"}
    Ответ написан
  • Возможно осилить Страуструпа в 16?

    Adamos
    @Adamos
    Целесообразно сходить на торренты и взять там ровно такую же пдф-ку бесплатно.
    Спрашивать на Тостере разрешения читать учебники - нецелесообразно.
    Ответ написан
  • Фронтенд это настоящее программирование?

    @dimoff66
    Кратко о себе: Я есть
    Вы поймите откуда это идет: у людей с комплексом неполноценности есть потребность самоутверждаться.

    Если человек с комплексом неполноценности пишет на с++, он заявляет - только с++ это трушно, всякие питоны это дерьмо.

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

    Но человеку, пишущему на фронте тоже ведь надо самоутверждаться? Для него Бог придумал программистов 1С. То что они пишут на русском языке делает их нетрушными.

    Программистам 1С самоутверждаться не перед кем, поэтому они гнобят бухгалтеров.

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

    0xD34F
    @0xD34F Куратор тега JavaScript
    weekdays.map(n => ({ сб: 'выходной', вс: 'выходной' })[n] || n)

    или

    weekdays.map(n => [ 'сб', 'вс' ].includes(n) ? 'выходной' : n)

    или (это, конечно, если дни недели как сейчас - начинаются с понедельника и идут без пропусков)

    weekdays.map((n, i) => (i % 7 > 4) ? 'выходной' : n)
    Ответ написан
  • Как создать новый объект на основе текущего?

    @casioo
    let result = data.map(item => {
      return {
        id: item.id,
        phone: item.phone,
        name: item.name,
        address: `${item.city}, ${item.street}, ${item.house}/${item.floor}`
      }
    })
    Ответ написан
  • Как создать новый объект на основе текущего?

    0xD34F
    @0xD34F Куратор тега JavaScript
    data.map(({ city, street, house, floor, ...n }) => (
      n.address = `${city}, ${street}, ${house}/${floor}`,
      n
    ))
    Ответ написан
  • Где взять базу слов русского языка?

    https://github.com/danakt/russian-words
    Использовал данную базу для написания инструмента для проверки орфографии. В файле скомбинировано несколько найденных мной баз, содержит русские слова во всех формах и русские имена. Так же есть файл со списком русских фамилий.
    Ответ написан
  • Правильный Rest Api?

    glaphire
    @glaphire
    PHP developer
    с точки зрения количества запросов лучше сэкономить и доставать ближайший ивент вместе с проектом (опираясь на статью о N+1), но с точки зрения чистоты ответа данных о конкретной сущности (проектах) это может быть лишним. Нужно ориентироваться на те показатели, которые более важны сейчас и в ближайшей перспективе
    Ответ написан
  • Как решить задачу в Javascript?

    @kunjut19
    function func(a,  b,  c) {
        if(c > b && b > a) {
            return `${a**2} ${b**2} ${c**2}`;
        }
    
        return `${a/2} ${b/2} ${c/2}`;
    }
    Ответ написан
  • Как понять внутреннее устройство Promises в Javascript?

    @twoone
    Давным давно, когда в javascript еще не было Promise, я изучал исходники доступных на тот момент нескольких альтернатив и могу сказать что тому кто только недавно познокомился с концепцией асинхронности бет не так просто разобраться во множестве конструкций необходимых для чистоты кода. Ссылки на лучшие реализации на текущей момент вам уже дали, но если захочется чего-то очень простого с комментами, то можете будет полезен упрощенный до максимума вариант написанный на скорую руку.

    Ответ написан
  • Сделать флаг России из символов О на чистом js?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Вариант из 10 тыс. «о»


    И вариант из трёх «О»

    из трёх «О»

    Ответ написан
  • Как привлечь провайдера к ответственности?

    @egn_onegin
    Всем участвующим в беседе доброго времени суток!
    Зарегистрировался исключительно из-за данного поста.
    Небольшое лирическое отступление: работаю в support регионального isp, в связи с чем приходится постоянно общаться с подобными всезнающими геймерами.
    Поскольку предварительно я почитал ответы автора сабжа на некоторые комментарии аудитории, то отвечать постараюсь максимально доступным языком.

    morfianes
    Согласно предоставленной тобой лично трассировке winmtr (по хопам):
    1. твой роутер;
    2. какой-то неизвестный провайдерский хост, предположительно, закрытый по icmp;
    3. очередной хост на сети твоего провайдера (возможно, промежуточный коммутатор или иное, предположительно, активное сетевое оборудование);
    4. gateway твоего провайдера, с которого тебе непосредственно предоставляется доступ во-вне (в интернет) - на этом ЗО (зона ответственности) твоего провайдера ВСЕ!!!
    Вот, лять, прямо вообще ВСЕ, от слова СОВСЕМ!!!
    5. ЗО вышестоящего оператора!!!
    и т.д.

    Ты молодец!! Красава!! Ресспектую!!
    Нагуглил, а может и в Яндексе поискал и нашел, 2ip.ru на котором "пробил" принадлежность проблемного, по твоему мнению, ipшника, а именно 94.25.8.129, и, казалось бы, вот ОНО!!!
    Ipшник находится в адресном пространстве, принадлежащем твоему провайдеру, но...
    Правильно - ничего!!!
    Вот, лять, прямо вообще НИЧЕГО!!! От слова СОВСЕМ!!!

    Тот, факт, что, согласно нарытым тобой данным, ipшник принадлежит Ростелекому, ну, т.е. твоему провайдеру, вообще ни о чем не свидетельствует.
    Как правильно заметил support Ростелекома, о чем и тебе сообщил, ты даже скриншот с перепиской скинул, но головой подумать дальше видимо чего-то не хватило.

    Согласно данным whois, ресурс с этим ipшником находится в сети Prestig_Internet.
    Ничего не смущает, не?!

    А теперь так же банально, как ты 2ip.ru разыскивал, берем и гуглим, ну Яндексом пользуемся, (тебе что удобнее??) Prestig_Internet и первой ссылкой, по каким-то причинам, enforta.ru.
    Немного странно, конечно, но и к этому вскоре подойдем.

    Чуть ниже в результатах поиска, хотя... не утруждайся - прикладываю ссылку: https://www.list-org.com/company/704092
    Сам же ты все равно не найдешь.
    Переходим по ссылке, читаем и, о Боже!!, выясняем для себя следующее:
    - Организация ООО "ПРЕСТИЖ-ИНТЕРНЕТ"... наверное имеет прямое отношение к сети Prestig_Internet, по крайней мере это вполне логично предположить.

    По всей видимости у ООО "ПРЕСТИЖ-ИНТЕРНЕТ" в свое время не хватило адресной емкости, в связи с чем у Ростелеком, да-да, именно у твоего провайдера, просто напросто был куплен ipшник.
    Вот так просто!!! Взяли и купили у Ростелеком ipшник, прикинь, ля!!!
    Однако, полагаю, что данный ipшник Ростелеком просто взял и "зажал", т.е. данный адрес не является PI, т.е. провайдеро-независимым, но это ты потом загуглишь, ну или в Яндексе найдешь.
    По факту расторжения договорных отношений между ООО "ПРЕСТИЖ-ИНТЕРНЕТ" и Ростелеком его (ipшник), скорее всего, придется вернуть.

    Читаем далее:
    - Статус: ПРЕКРАЩЕНИЕ ДЕЯТЕЛЬНОСТИ ЮРИДИЧЕСКОГО ЛИЦА ПУТЕМ РЕОРГАНИЗАЦИИ В ФОРМЕ ПРИСОЕДИНЕНИЯ с 01 ноября 2017 года.

    И тут, казалось бы, все мои доводы рухнули, разлетелись в пух и прах, но... х... ты угадал!!
    Листаем ниже!!
    - Правопреемники: АО "ЭР-Телеком Холдинг" (брэнды Дом.ру и Энфорта, если, вдруг, ты не в курсе).
    Теперь более понятно, при чем тут Энфорта. Если все еще не понятно - читай далее.

    Таким образом получаем следующее:
    - ipшник принадлежит Ростелеком, ибо он не является PI (предположительно);
    - железо, которое работает на этом ipшнике, принадлежит АО "ЭР-Телеком Холдинг" - на основании данных list-org.com;
    - какие отношения в разрезе данного ip адреса между Ростелеком и АО "ЭР-Телеком Холдинг" мне вот прям до звезды фиолетово.

    Могу осмелиться предположить, что маршрутизация от тебя, а по факту от твоего роутера 192.168.0.1 (D-Link, наверное), до конечного ресурса, а именно 162.249.73.10, который, как бы, тоже нихрена не у тебя под боком находится, строится по принципу OSPF... а может BGP... а может... (да, простят и поправят, в случае ошибки, коллеги по цеху).
    Что такое OSPF/BGP потом загуглишь, ну или в Яндексе найдешь.
    Если не найдешь, привлекай Rambler к содействию.
    Конечно, мои предположения к фактически используемой маршрутизации на сети твоего провайдера, а так же точкам обмена трафика с другими операторами связи, остаются только предположениями, но... если... вдруг...

    Итого:
    - 212.48.195.0 - граница ЗО твоего провайдера (Вот, лять, прямо вообще КОНЕЦ!!! От слова СОВСЕМ!!!), с этого момента Ростелеком тебе должен/обязан (читай, как больше нравится) чуть меньше, чем ни...чего;
    - ресурс 94.25.8.129 фактически принадлежит АО "ЭР-Телеком Холдинг", несмотря на то, что ipшник находится в адресном пространстве Ростелеком, контакты ЭР-Телеком найдешь, тут уже совсем все изи;
    - менять маршрут ради тебя одного такого пи...дельного никто не станет - хлопотно;
    - почитай/ознакомься: https://habr.com/ru/post/134892/ - доступным для понимания языком написано;

    P.S. уж слишком дохрена вас таких... "интересных", платят 500рэ за 100М, а голову выделывают...
    Ответ написан
  • Как решить эту задачу си?

    bingo347
    @bingo347
    Бородатый программер
    Для начала нужно понимание, что памятью на стеке управляет компилятор, и для каждой функции эта память имеет фиксированный размер. А все потому, что в ассемблере, в который скомпилится наш C код нет переменных, вместо них компилятор просто проставит смещения от указателя на конец стека на старте функции. Именно по этому компилятору важно знать размеры всех сущностей на стеке.
    Изменить этот размер в рантайме нельзя, поэтому единственный способ решить эту задачу с массивом символов на стеке - выделить массив с достаточным запасом памяти, чтоб хватило и на исходную строку и на вставляемую подстроку.
    А вот память в куче динамическая. И все аллокации работают именно с ней. И главное мы ее можем выделять в рантайме по мере надобности.
    Учитывая, что массивы в C - это по сути сахар над указателями, то смело можете заявлять своему преподу, что указатель на несколько подряд идущих char в куче и массив char - это одно и то же.

    Вообще, по нормальному я бы объявил структуру вроде такой:
    typedef struct {
    	char* buffer;
    	size_t capacity;
    	size_t length;
    } string;
    и дальше бы работал с ней, заодно разбив код на небольшие функции. Но преподы программирования народ от разработки далекий, и кроме своих лабараторок в программировании не бум-бум в большинстве своем. А в комментах к вопросу было про то, что структуры нельзя...
    Поэтому решение в лоб и в стиле универских лаб:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main() {
    	size_t capacity = 1 << 4; // на старте буду выделять 16 байт
    	size_t length = 0; // строка пока пустая, поэтому 0
    	char* str = malloc(capacity);
    	if (str == NULL) { // с памятью в куче может и облом быть
    		return 1; // вернем код ошибки
    	}
    	printf("Write string and press ENTER to continue:\n");
    	while(1) { // читать символы будем до скончания веков ))
    		char c = getchar();
    		if(c == 13 || c == 10) break; // ну или пока юзер не нажмет ентер
    		length++; // увеличим счетчик символов
    		if(length > capacity) { // если новый символ не влазит в выделеную память
    			capacity <<= 1; // то удвоим ее
    			char* new_str = realloc(str, capacity); // и перевыделим
    			if (new_str == NULL) { // опять чекнем, вдруг облом
    				free(str); // ресурсы надо освобождать
    				return 1; // вернем код ошибки
    			}
    			str = new_str; // в str теперь невалидный указатель, можем его заменить
    		}
    		str[length - 1] = c; // запомним считанный символ
    	}
    	// Здесь решение с вставкой подстроки
    	// с учетом того, что у нас строка str
    	// с длиной length и выделеной памятью под нее capacity
    	free(str); // ресурсы надо освобождать
    	return 0; // вернем код успешного завершения
    }
    с самой вставкой подстроки надеюсь справитесь?
    Ответ написан
  • Как организовать работу над проектами из любого места?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Вы, видимо, не так понимаете суть современных систем контроля версий.
    1. Вы настраиваете работающее окружение на работе и дома.
    2. Делаете клоны проекта на работе и дома.
    3. Работаете над проектом, каждое осмысленное изменение коммитите и время от времени отправляете в центральный репозиторий на гитхабе. Каждый раз приступая к работе обновляете локальный клон и продолжаете работать. Если фича требует много изменений, то вы можете сделать несколько коммитов в отдельную ветку и залить ветку на сервер. На другом компе вы тоже можете работать с этой веткой. Ветка лично ваша. У вас может быть много веток. Когда закочите работу над фичей - подольёте изменения в мастер.
    Ответ написан
  • Почему не получается удалить событие?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    (function(e) {}) === (function(e) {}) // false

    Хотя код функций идентичен – они не равны, т.к. сидят в разных областях памяти.

    Как починить:
    function func(e) {
      console.log(e.target.id);
    }
     
    // Назначить событие
    document.body.addEventListener('click', func);
    
    // И сразу его удалить
    document.body.removeEventListener('click', func);
    Ответ написан