• JS. Как отфильтровать данный массив?

    @swe3etch
    var result2 = fruits5.filter(item => item < maxW && item > minW);
    Ответ написан
    2 комментария
  • Как вывести ключ рандомно из объекта?

    @AlexeySmk
    const keys = Object.keys(yourObj);
    
    const randomNumber = Math.floor(Math.random() * keys.length);
    const randomKey = keys[randomNumber];
    const randomValue = yourObj[randomKey];
    
    console.log(randomKey, randomValue)
    Ответ написан
    1 комментарий
  • Написать функцию возвращающую cумму элементов массива?

    function sum(arr) {
      let result = 0;
    
      for (let i = (arr.length - 1); i !== 0; i--) {
        if (arr[i] === 0) return result;
        result += Math.abs(arr[i]);
      }
      return result;
    }
    
    console.log(sum([2.1, 3.1, 4.1, 6.1, 7.1, 9.1, 11.1, 0.0, 2.2, 1.4])); // 3.6
    console.log(sum([2.1, 3.1, 4.1, 6.1, 7.1, 9.1, 11.1, 0.0])); // 0
    Ответ написан
    Комментировать
  • Существуют логические элементы электроники в типовых корпусах?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    https://www.155la3.ru/

    А оно вам надо?
    Возьмите плисину и сгенерируйте схему, выйдет дешевле
    Ответ написан
  • Работа с объектом и массивом?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    for (let key in objectEmployee) {
    что будет в key?

    objectEmployee.key['age']
    есть ли у objectEmployee свойство key? (нет)

    spoiler
    const filters = {
      age: v => v >= 25,
      education: v => v === 'higher',
      experience: v => v >= 1,
    };
    
    const employee = {};
    const defaultDescriptor = { writable: true, enumerable: true, configurable: true };
    Object.defineProperties(employee, {
      name: { ...defaultDescriptor, value: 'Dmitriy', writable: false },
      age: { ...defaultDescriptor, value: 21 },
      education: { ...defaultDescriptor, value: 'higher' },
      experience: { ...defaultDescriptor, value: 0 },
    });
    
    const hireNewEmployee = (employee, filters) => {
      const errors = [];
      Object.entries(filters).forEach(([name, func]) => {
        if (!func(employee[name])) {
          errors.push(name);
        }
      });
    
      return errors.length
        ? `Not hired: sorry we cannot hire you. Here is why: ${errors.join(', ')}`
        : 'You are Hired! Congrats!';
    };
    
    hireNewEmployee(employee, filters);
    // "Not hired: sorry we cannot hire you. Here is why: age, experience"
    Ответ написан
  • Как расширить список поддерживаемых единиц путём задавания правил конвертации с помощью JSON файла?

    mayton2019
    @mayton2019
    Bigdata Engineer
    const converter = {
      "m":{
        "cm":{k:0.01	},
        "in":{k:0.254	},
        "ft":{k:0.3048	},
      },


    Тут можно улучшить. Если посмотреть на этот JSON документ с "прищуром". То можно увидеть
    полносвязный граф. Например узел футов ("ft") имеет свое ребро в направлении дюймов ("in").
    И все другие также.

    Нужно ли нам описывать так много цифр? Я-бы предложил одну таблицу. Все меры длины отобразить на метры.
    Тогда формула перехода ft -> in будет всегда идти через метрическую систему. ft -> m -> in.

    А ребра графа мы все равно сможем получить но уже путем вторичных расчетов если надо.
    Ответ написан
    Комментировать
  • Насколько правильный код?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Ошибка:
    Не правильно, что backBlock.addEventListener добавляется внутри обработчика клика. Т.е. каждый раз, как нажимаем на openBlock, вешается ещё и ещё один обработчик на backBlock. Достаточно один раз, заранее, так же как сейчас openBlock.addEventListener

    Мелочи:
    1. openBlock и backBlock не меняются, их можно вместо let объявить const
    2. внутри обработчиков событий снова и снова искать document.querySelector('.hidden-block') наверное, не имеет смысла, достаточно один раз, заранее
      const hiddenBlock = document.querySelector('.hidden-block');
      и далее обращаться к этой константе hiddenBlock.

    Культура:
    Хорошо бы песочницу на CodePen, где можно вживую проверить работу этого кода. И вставить её в сам вопрос, через кнопку [ + ]
    Ответ написан
    Комментировать
  • Как создать QR в ячейке?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    2 комментария
  • Как сменить заблокированную учётную запись?

    3r1k
    @3r1k
    the quieter you become, the more you hear
    Попробуй так:
    1. Загрузись с любого live linux дистрибутива.
    2. Удали в папке "C:\WINDOWS\system32\config" файл SAM (а лучше переиминуй на sambak)
    3. Из папки "C:\WINDOWS\repair" скопируй файл SAM в исходную папку "C:\WINDOWS\system32\config"

    Вобщем нужно файл "sam" заменить резервным.
    Ответ написан
    Комментировать
  • Как сменить заблокированную учётную запись?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Берется Hiren, пишется на флэшку. Загружается с флэшки редактор паролей (или как он там называется). Сбрасывается пароль. (Редактировать на самом деле он не умеет, но сбросить пароль в нуль - умеет)
    Ответ написан
    1 комментарий
  • Как восстановить удаленные файлы на старых местах?

    @rPman
    Нет, все утилиты восстановления удаленных файлов копируют данные на новый диск. В теории это возможно конечно, но на практике готового софта нет.

    80Тб это значит несколько дисков. В зависимости от того, как на их основе построен архив, можно попробовать по одному диску от архива отсоединять и на него восстаналивать (так не получится если на всех дисках создан один огромный raid массив)

    на время восстановления массив не перезаписывать и вообще ничего с ним не делать, т.е. режим только чтения.
    Ответ написан
    3 комментария
  • Почему Doom портируют куда только можно?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Doom - это была одна из первых игр где была реализована в полной мере техника BSP (Binary-Space-Partition). Это позволяло в реальном времени очень быстро сортировать и рендерить полигоны без привлечения Z-Buffer. (Рендеринг был чисто прогарммный. На то время еще не было ускорителей 3Д графики и видеокарточка умела только отображать память на экран. ) Игра не была по настоящему трехмерной. А только рализовывала 1 этаж. Рендерить надо было только пол и потолок. Для каждой точки где стоял персонаж. И наклонных горизонтальных поверхностей в ней не было как раз по этой причине. Ее называли 2.5-мерной игрой. Было также много идей оптимизации вычислений. Например вместо вещественных чисел - целые 32х битные с fixed point.

    В скобках замечу что это был 1993 год и на дворе было царство Intel 286/386. Это были машины с тактовой частотой меньше ваших телефонов (Pentium только только релизнулся и еще ни у кого не был). И трехмерный Doom был прорывом. На моем тогда еще 386SX от подтормаживал но играть было можно. И со звуком для SoundBlaster. И конечно это было лучше чем Wolfenstein.

    Аналогичное было реализовано в Duke Nukem 3d. Но Дюк был менее популярен ИМХО. Были и масса других 3д игр в жанке RPG но они были не такие динамичные. Походовые в основном.

    Вобщем сегодня если вы гейм-дев то вам желательно хотя-бы ознакомиться с техниками оптимизации которые были в Doom. Можно почитать и про Quake но это просто развитие идеи BSP деревьев для полного 3D с 5 или 6 степенями свободы. Еще можно почитать про реализацию игры Esctatica. Там не на полигонах а на шариках или эллипсах реализована игровая графика. Тоже интересно.

    UPD: Заменил MMORPG на RPG.
    Ответ написан
    6 комментариев
  • Как найти все вхождения слова в строку и перенести их в начало строки?

    freeExec
    @freeExec
    Участник OpenStreetMap
    У IndexOf если аргумент, откуда начинать поиск.
    Да и задача решается в 3 подхода: разбить на слова, отсортировать по условию, склеить обратно в строку.
    Ответ написан
    Комментировать
  • Как генерируются файлы и путь в браузере?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Алгоритм состоит из трех основных частей:
    • Роутер - он получает на вход ссылку и разбирает её на составляющие и далее вызывает соответствующий контроллер (например: site.ru/$category/$id)
    • Контроллер - он получает на входе данные от роутера, делает нужные запросы к БД или кэшу, делает еще какую-то работу по подготовке данных и передает их в шаблон
    • Шаблон - это шаблон html страницы, он на входе получает данные от контроллера и выдает результат в виде html страницы со всеми данным в нужных местах и с нужным форматированием
    Ответ написан
    1 комментарий
  • Как генерируются файлы и путь в браузере?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    как реализуется генерация html файлов?
    Никак. Никаких файлов не генерируется. Генерируется строка, содержащая какой-то шаблонный набор тегов (собственно так и называется - шаблон), и основное содержимое страницы (например статья или список статей), обычно хранящееся в базе данных или в другом хранилище. Эта строка отдается клиенту с соответствующими заголовками, объясняющими клиенту что за данные передаются (например "это будет хтмл" или "кодировка данных утф-8", естественно в более формальном виде, гуглите http headers).
    В урл указываются некоторые параметры, через get переменные (www.trusy.ru/?variant1=a&variant2=g) или через параметры пути (www.trusy.ru/variant1/variant2), которые на сервере преобразуются в переменные и уже по ним выбираются нужные для отображения данные.

    Гуглить по теме:
    единая точка входа
    роутинг
    MVC
    Ответ написан
    1 комментарий
  • Зачем нужна рекурсия в реальных случаях?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Рекурсия нужна при обработке иерархических данных. Например - обойти файлы и каталоги
    в файловой системе и выполнить какое-то действие. Или действие с условием. Например если
    в текущем фолдере есть фолдер .git - то выполнить какой-то git script.

    Рекурсия может понадобиться при работе с документами XML/JSon (шаблон composer). И хотя
    в некоторых API рекурсия может быть частично скрыта за языками XPath/JSonPath тем не меннее
    ее рекурсивная природа остается налицо. Кроме того если вам достался узкий API типа DomDocument
    без поисковых диалектов - то обойти его можно на любом ЯП с рекурсивной функцией.

    Рекурсия нужна при парсинге сайтов. Это вобщем просто более расширенная трактовка работы с файловой
    системой. Если Url-s это как-бы файлы в web пространстве и они имеют ссылки друг на друга - то вы
    можете рекурсией это все обходить.

    Рекурсия почти всегда нужна при работе с графами. Берите любой алгорим на теорию графов и я готов
    спорить что 99% он будет содержать рекурсию.

    Все настольные игры (шахматы-шашки) в основе своего алгоритма альфа-бета поиска с отсечениями и
    BWF базируются на рекурсии.
    Ответ написан
  • Возможно ли вытащить пароли Chrome из мертвой системы?

    А папка с хромом живая? То можно подкинуть профиль старый и всё должно подцепиться
    Ответ написан
    Комментировать
  • Как скопировать текст множество раз с счетчиком на конце?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Так простейший же FOR справится:
    for /l %%N in (1,1,3000) do echo Example-%%N.jpg >>out.txt
    Ответ написан
    5 комментариев
  • Как максимально недорого и просто сделать звуковой эффект эха аппаратно?

    размером с тумбочку

    Пружинный ревербератор! Одна (или несколько) длинных пружин, с одной стороны электромагнит создаёт колебания, с другой пьезодатчик их снимает, как вариант. Несложное устройство. Тёплый ламповый – вот это вот всё )
    фото
    1200px-Spring_Reverb_8325.jpg


    Звук, как я понимаю, снимать со стекла, с поверхности — тоже лучше пьезодатчиком. Купить для акустической гитары, например. Тогда постукивания по стеклу снимутся, а громкий динамик соседнего стенда меньше попадёт в сигнал.
    Ответ написан
    3 комментария
  • Как скопировать определенные (не все) свойства объекта?

    Fragster
    @Fragster
    помогло? отметь решением!
    const {b, c} = obj
    const obj2 = {b, c}
    Ответ написан
    Комментировать