Задать вопрос
  • Как реализовать страницы в реакте?

    @Che603000
    c 2011 javascript
    Постраничный вывод таблиц стандартный приём в web программировании. Можно сделать самому но быстрее и надежней использовать пакеты. Для примера привожу ссылки
    https://www.npmjs.com/package/react-paginate
    https://www.npmjs.com/package/react-js-pagination
    Ответ написан
    3 комментария
  • Можно кто код объяснить?

    TrueBlackBox
    @TrueBlackBox
    // Создать функцию work, что она делает понятно, надеюсь
    function work(a, b) {
      alert( a + b ); 
    }
    // Создать функцию spy, которая принимает в себя функцию
    function spy(func) {
        // Создать функцию-обертку, которая принимает в себя все аргументы
        // функции, внутри которой она была вызвана.
        function wrapper(...args) {
          // Сохранить аргументы внутри wrapper.calls
          wrapper.calls.push(args);
          // Привязать функцию, что передавалась как агрумент,
          // к контексту, в котором она будет вызвана
          return func.apply(this, arguments);
        }
    
        // Вот тут начинается полный говнокод. 
        // То, что написано снизу, равноценно следующему:
        // var wrapper;
        // wrapper.calls = [];
        // Почему говнокод? Потому что во первых никто
        // давно в 2020 году не пользуется var. А почему?
        // А потому что эта переменная будет висеть на общее обозрение.
        // Никогда не надо делать так, объявляйте нормально:
        // const wrapper или let wrapper. Более того, не понятно,
        // зачем здесь нужен именно  wrapper.calls. Можно просто создать 
        // переменную const wrapper = [] и пушить в неё.
        wrapper.calls = [];
      
        // Собственно вернуть то что получилось.
        return wrapper;
     }
    
    // Снова говнокод. По итогу теперь work = wrapper, у которого определен
    // метод func как function func(a, b) { alert(a+b) }. work что объявлен в самом начале исчез.
    work = spy(work);
    
    // Здесь вызывается то что получилось.
    work(1, 2); // 3
    work(4, 5); // 9
    
    // Тут выводятся значения из массива, всё понятно
    for (let args of work.calls) {
      alert( 'call:' + args.join() ); // "call:1,2", "call:4,5"
    }


    На скорую руку, я бы это переделал так.
    const argumentsArray = [];
    
    function work(a, b) {
      console.log(a + b);
    }
    
    function loggedArgs(...args) {
      argumentsArray.push(args);
    }
    
    function workAndLog() {
      work(...arguments);
      loggedArgs(...arguments);
    }
    
    workAndLog(1, 2); // 3
    workAndLog(4, 5); // 9
    
    for (let args of argumentsArray) {
      console.log("call:" + args.join()); // "call:1,2", "call:4,5"
    }
    Ответ написан
    8 комментариев
  • Практика redux-react ввод логина/пароля, как реализовать?

    RomReed
    @RomReed
    JavaScript, Flutter, ReactNative, Redux, Firebase
    нужно использовать серверную часть и хранить ответ от сервера. Обычно после отправки логина и пароля на сервер если все правильно то сервер возвращает токен который и нужно хранить.
    Ответ написан
    6 комментариев
  • Запуск eslint ./src выдает ошибку, как исправить?

    @JorJeG
    Так должно заработать
    ./node_modules/.bin/eslint ./src

    Причина, пытаешься запустить глобальный модуль eslint, который не знает твои локальные(установленные в проекте) плагины.

    Чтобы не писать каждый раз такой длинный путь,
    в package.json добавь
    "scripts": {
    "dev": "webpack-dev-server --mode development --open",
    "build": "webpack --mode production",
    "eslint": "eslint"
    }


    и потом вызывай из консоли npm run eslint ./src
    Ответ написан
    1 комментарий
  • Как лучше организовать код и вообще улучшить код?

    @forspamonly2
    как я понимаю, вы именно на ванильном жабаскрипте пытаетесь, поэтому библиотеки и фреймворки советовать не буду.

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

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

    кнопки "Изменить" "Удалить" лучше показывать не скриптом, а цсс.

    ну и самое главное, вы фактически модель данных держите прямо в хтмл элементах. это приемлемо работает только на примитивных примерах, вроде вашего. в большинстве реальных случаев куда проще иметь разделение на модель данных, которыми оперирует скрипт, и их отображение в виде хтмл. почитайте про паттерн model-view-controller.
    Ответ написан
    3 комментария
  • Как создать массив с рандомными повторяющимися числами?

    0xD34F
    @0xD34F Куратор тега JavaScript
    чтобы числа повторялись не более двух раз

    Ну, очевидно же - создать два массива со случайными числами и объединить их. Как создать массив со случайными не повторяющимися числами - недавно рассказывал.
    Ответ написан
    5 комментариев
  • Почему не отображается элемент таблицы и выдает ошибку?

    Vlad_IT
    @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    Название класса не должно начинаться с цифры и других подобных знаков.
    Вот так работать будет
    let res = {
    vasis: function(location){
        let cell = document.querySelector(location);
       console.log(cell)
    }
    }
    res.vasis('.mama')
    res.vasis('.s10')

    <div class="mama">111</div>
    <tr>
          <td class="s10"></td>
     </tr>
    Ответ написан
    Комментировать
  • Как работать с массивом в котором есть объект и вложенный массив?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Как из этого массива, создать новый массив, и чтобы в нем были значения из массива user, что-то типа такого массива должно получиться res = [5,12,2,22,'5,23',cost,'5',numbers,1,5,33,count,props,4,area,7];

    В смысле - хотите, чтобы все элементы массивов и ключи/значения объектов, включая вложенные, оказались развёрнуты в одномерный массив? Ну, так можно:

    const toArray = val =>
      val instanceof Object
        ? [].concat(...(val instanceof Array
            ? val
            : Object.entries(val)
          ).map(toArray))
        : [ val ];
    
    
    const res = toArray(user);
    Ответ написан
    Комментировать
  • Как вытащить число из функции которая находится в ячейке массива?

    archakov06
    @archakov06
    Frontend-разработчик (ReactJS)
    let res = arr[0]();

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

    @sundrey
    Надо перезаписывать значение labPro после нажатия

    function plusProc(){
    labPro = labPro + 5;
    document.querySelector('.proc').innerHTML = labPro + '%';
    }
    Ответ написан
    1 комментарий
  • Как обратиться к элементу объекта?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    let wall1 = [          
     { color: '#5A6FDA', range: [0, 25] },
     { color: '#52DA33', range: [26, 35] },
     { color: '#DA2278', range: [36, 56] },
     { color: '#B955DA', range: [57, 79] },
     { color: '#2D1ADA', range: [80, 102] },
     { color: '#33B9DA', range: [103,152] },
     { color: '#DA6E15', range: [153, 200] }
    ]
    
    let wall2 = {
     { 0: { '#5A6FDA': [0, 25] } },
     { 1: { '#52DA33': [26, 35] } },
     { 2: { '#DA2278': [36, 56] } },
     { 3: { '#B955DA': [57, 79] } },
     { 4: { '#2D1ADA': [80, 102] } },
     { 5: { '#33B9DA': [103,152] } },
     { 6: { '#DA6E15': [153, 200] } }
    }
    Ответ написан
    1 комментарий
  • Как добавить в массив только уникальные элементы?

    Ivanq
    @Ivanq
    Знаю php, js, html, css
    let arr = [[1,23,23,21,1,23,41],[2,12,3,321,234,234,1,31,321,22,3],[12,32,53,1,3,12,3,2],[12,32,53,1,3,12,3,2]].reduce(function(a, b) {
      return a.concat(b);
    });
    
    var result = [];
    while(result.length < 6) {
      let sum = Math.floor(Math.random() * (arr.length - 0)) + 0;
      if(result.indexOf(arr[sum]) == -1) { // Проверяем
        result.push(arr[sum]);
      }
    }


    Для ускорения (небольшого) можно отдельно скопировать уникальный arr. То есть:

    let arr = [[1,23,23,21,1,23,41],[2,12,3,321,234,234,1,31,321,22,3],[12,32,53,1,3,12,3,2],[12,32,53,1,3,12,3,2]].reduce(function(a, b) {
      return a.concat(b);
    });
    
    let unique = arr.filter((val, i) => arr.indexOf(val) == i);
    
    var result = [];
    while(result.length < 6) {
      let sum = Math.floor(Math.random() * (unique.length - 0)) + 0;
      if(result.indexOf(unique[sum]) == -1) { // Проверяем
        result.push(unique[sum]);
      }
    }
    Ответ написан
    Комментировать
  • Можно ли, посчитать числа в коде JS?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    а в чем трудности?

    берите нужный скрипт/набор - и парсите как текст, все что похоже на числа - суммируйте

    ps кстати парсить не сложно.. но вот если вы хотите прочесать большой обьем (может страницы html+js+css?) то регулярки могут стать большим тормозом по скорости
    Ответ написан
    7 комментариев
  • Удаляется только первый элемент списка, почему?

    @bes_internal
    webdev: perl, gentoo, html/css
    У вас в removeC изначально только один первый элемент, а не все. Используйте querySelectorAll
    Во второй части вопроса, насколько я понял, вы спрашиваете почему оно не навешивает события постоянно на вновь добавленные элементы? Ну потому что оно один раз при вызове проходит по элементам и всё, а новые уже без этого события создаются
    Ответ написан
    3 комментария
  • Не могу понять и разобрать код, хелп?

    @AHDPEu
    const - константа, неизменяемая переменная. В данном случае это прихоть автора
    e - event объекта, в нём информация о событии и элемент на котором оно сработало
    for..of

    Удаляет себя, так как мы находим родителя от текущего элемента (.parentNode) и удаляем у этого родителя ребёнка, то есть себя (e.target)
    Ответ написан
    1 комментарий