• На что установить сервер?

    Adamos
    @Adamos
    "Дедик" - это dedicated server, полностью ваш железный сервер в чьем-то датацентре.
    Да, на нем можно без всяких раздумий запустить винду и елозить мышкой. Но он стоит, как крыло от самолета, и вас вообще не должен интересовать.
    Для пет-сервера, которому не нужно ни выдерживать наплыв пользователей, ни крутить тяжелые задачи - самый дешевый VPS за 55 руб./мес., скорее всего, будет более чем достаточен.
    НО! Никаких мышек по рабочему столу. Линукс, командная строка, вся свобода администрирования...
    Ответ написан
    2 комментария
  • Вопрос про обучение и как стоит оформлять проекты?

    alekseyHunter
    @alekseyHunter
    Android developer
    1) Чем чаще будете доводить код до идеала (по установленным стандартам), тем быстрее у вас пойдет развитие, и вы будете тратить все меньше и меньше времени на новые проекты.
    2) Readme -> Запуск проекта -> Просмотр кода
    3) Оставить текущий проект -> Пойти делать новый проект -> Вернуться к первому и внести улучшения, которые сделал в новом -> Повторить пункты
    4) Если один проект похож на другой, то лучше сосредоточиться на качестве одного из них, а не на количестве.
    P.S. Ну и совсем банальность, думайте о времени людей, проверяющих проекты. Одно дело - читать отформатированных и структурированный код, и совсем другое - разбираться в проекте без архитектуры и оформления.
    Ответ написан
    1 комментарий
  • Вопрос про обучение и как стоит оформлять проекты?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    В проектах ценится их суть. Что проект решает какую-то задачу. Пусть не всемировую, но что-то для вас.

    Вылизывать код не нужно, нужно просто придерживаться стандартов, и тогда проект в любой момент можно доработать без последующего перевылизывания.

    Я могу посмотреть код проекта, который мне показался интересным. Или посмотреть конкретную реализацию отдельного момента.
    Для этого проект должен быть оформлен. Не круто, но достаточно - readme, примеры использования, назначение.

    3)
    Именно поэтому проект это не "а тут я попробовал что такое библиотека x", а более-менее законченный продукт, который решает цельную задачу.

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

    @n1ksON
    мидл
    let arr = [10, 20, 30, 50, 235, 3000];
    arr.forEach(item => ['1', '2', '5'].includes(String(item)[0]) && console.log(item))
    Ответ написан
    8 комментариев
  • Как выполнить функции синхронно?

    rqdkmndh
    @rqdkmndh
    Web-разработчик
    Что мешает сделать так через обычный await?:
    async function fnOne() {
      return new Promise(res=>setTimeout(()=>{res(1000)}, 1000))
    }
    async function fnTwo() {
      return new Promise(res=>setTimeout(()=>{res(2000)}, 1200))
    }
    async function fnThree() {
      return new Promise(res=>setTimeout(()=>{res(3000)}, 1400))
    }
    
    const allFn = async ()=>{
      try {
        await fnOne()
        console.log('Выполнилась 1-я ф-ция')
        const rz = await fnTwo()
        console.log('Выполнилась 2-я ф-ция, полученный результат = ', rz)
        await fnThree()
        console.log('Выполнилась 3-я ф-ция')
      }catch (e) {
        console.error(e)
      }
    }
    
    allFn()
    Ответ написан
    1 комментарий
  • Как сейчас быстрее войти в мобильную разработку?

    rozhnev
    @rozhnev
    Fullstack programmer, DBA, медленно, дорого
    Перестать спрашивать и начать делать. Попробуйте Ionic убедитесь что он медленный, пересядьте на Flatter заодно сравните по сложности
    Ответ написан
    6 комментариев
  • Как реализовать анимированное появление текста по буквам?

    Acrilo
    @Acrilo Автор вопроса
    Нашлось решение на чистом JS и CSS.

    JS
    function animateWord(word){
        let text = word.dataset.text;
        text.split('').forEach((letter,ind) => {
        let div = document.createElement('div');
        div.innerText = letter;
        setTimeout(()=> word.append(div),ind*200);
      })
    }
    
    const word = document.querySelector('.word');
    animateWord(word);


    CSS
    @keyframes letter{
      0% {opacity: 0; transform: translateY(-15px)}
      100% {opacity: 1; transform: translateY(0px)}
    }
    
    .word div {
      animation: letter 0.5s;  
      display: inline-block;
    }


    HTML, текст в атрибуте "data-text".
    <div class="word" data-text='Hello'></div>

    Пусть на сайте примере и выглядит немного не так и текст не в атрибуте HTML тега, но можно стилизовать под себя.
    Ответ написан
    Комментировать
  • Как написать этот код легче?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const newData = data.reduce((acc, n) => {
      const k = Object.keys(n)[0];
      (acc.result[acc.keys[k] = (acc.keys[k] ?? -1) + 1] ??= []).push(n);
      return acc;
    }, { result: [], keys: {} }).result.flat();

    или

    const numKeys = new Set(data.flatMap(Object.keys)).size;
    const numObjs = data.length / numKeys;
    const newData = data.map((n, i, a) => a[(i % numKeys) * numObjs + (i / numKeys | 0)]);
    Ответ написан
    2 комментария
  • Как сделать такой наклонённый текст с помощью css?

    @MrColdCoffee
    web
    transform-origin: 50% 100%;
    transform: perspective(300px) rotateX(25deg);
    Ответ написан
    1 комментарий
  • Локальное подключение бибилиотеки. Как это сделать?

    @Everybody_Lies
    Если я вас правильно понял, то вам нужно установить пакеты только для локальной разработки (devDependencies). Такие пакеты не попадут в общую сборку.
    Для этого при установке используйте следующие параметры --save-dev или -D
    npm install <package-name> --save-dev
    Ответ написан
    Комментировать
  • Насколько сложна эта задача?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Если дочитали документацию JavaScript до Set, то решение совсем простое: перевести массив в сет (останутся только уникальные значения), и сет обратно в массив.

    upd. неправильно понял задачу. Если надо вернуть только элементы, которых в исходном массиве ровно 1 штука, то надо видимо считать. Сделать объект, где ключи строки, значения число, сколько раз нашлись. { "кришна": 4, "харе": 4, ":-O": 1 }Оставить только те, где значения 1. Собрать в массив.

    Или оставить те, что с начала и с конца находятся только «здесь и сейчас»:
    const unique = arr => arr.filter((item, i) => i === arr.indexOf(item) && i === arr.lastIndexOf(item));
    Ответ написан
    Комментировать
  • Как правильно построить логику приложения?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Найти параметры неуникальности, то есть определить что такое дубликат.
    По этим параметрам либо создать хеш и хранить его отдельным полем в таблице, либо, если это 1 поле, проверять уникальность по нему.
    Ставим на поле с хэшем уник, при добавлении делаем инсерт он дупликэйт игнор.
    Все.
    Ответ написан
    2 комментария
  • Как правильно построить логику приложения?

    @rPman
    Если у загружаемых данных (объектов) нет какого то уникального идентификатора, сделай его из самих данных, взяв к примеру md5 хеш из строки, в которую сериализовал данные (только если внутри есть списки, постарайся чтобы порядок в них не гулял или отсортируй их, речь идет исключительно для получения строки, которая будет для одних и тех же данных всегда одинаковой)

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

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

    @LocalHero
    Description?
    Ответ написан
    Комментировать
  • Несколько условий в if?

    wapster92
    @wapster92 Куратор тега JavaScript
    Не делай сложные условия, лучше разбей на несколько и комбинируй их. Простенький пример
    const simpleString = '7911xxxxxxx';
    
    const validateStr = (str) => {
      let result = '';
      if (typeof str !== 'string') throw 'Parameter is not a string!';
      if (str.length >= 10) throw 'Phone is incorrect!';
      if (str[0] === '7') result = '+' + str;
      return str;
    }
    Ответ написан
    Комментировать
  • Как сгруппировать объекты в массиве?

    black1277
    @black1277
    Вольный стрелок
    накидал по быстрому
    const records =[
      {'name' :'Pink Floyd The Dark Side of the Moon'},
      {'year': '1973'},
      {'country': 'london'},
      {'date': 'March 24'},
      {'type':'music album'},
      {'name' :'Dark Side of the Moon'},
      {'year': '1986'},
      {'country': 'paris'},
      {'date': 'March 14'},
      {'type':'video album'},
    ]
    // сначала разбиваем на массив по 5 объектов
    const nz = records.reduce((acc,c,i,arr) => {
      if ((i % 5) === 0) acc.push([]);
      acc[acc.length - 1].push(c);
      return acc;
    }, [])
    // затем сливаем объекты
    const rez = nz.map(ob=>{
      return Object.assign({}, ...ob)
    })
    //  результат
    console.log(rez)
    Ответ написан
    Комментировать
  • Как сгруппировать объекты в массиве?

    Anopeng
    @Anopeng
    Веб-программист, учу фронт и бек
    function concatObjects(arr) {
        const obj = {};
        arr.forEach(function (el) {
            Object.assign(obj, el);
        });
        return obj;
    }
    
    console.log(concatObjects(records));
    Ответ написан
    Комментировать
  • Как сгруппировать объекты в массиве?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Серьёзно? Это задача для начинающего.
    Императивно и в лоб: перебираете все элементы массива в цикле, по ходу дела создаёте нужные вам группы.
    как-то так
    let result = [];
    let num = 0;
    let obj;
    records.forEach(e => {
      if (num++ === 0) result.push(obj = {});
      Object.assign(obj, e);
      if (num === 5) num = 0;
    });
    console.log(result);
    //но можно сделать короче и красивее
    Ответ написан
    1 комментарий
  • Как можно удалить дубликаты из массива объектов?

    Tim-A-2020
    @Tim-A-2020
    Типо так?
    const obj = [{
        'name': 'anna',
        'lastname': 'petrova'
      },
      {
        'name': 'vika',
        'lastname': 'ivanova'
      },
      {
        'name': 'julia',
        'lastname': 'petrova'
      },
    ];
    
    const res = obj.reduce((o, i) => {
      if (!o.find(v => v.lastname == i.lastname)) {
        o.push(i);
      }
      return o;
    }, []);
    console.log(res)
    Ответ написан
    2 комментария