• Как отсеивать повторяющиеся числа в Math.random?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    Может просто перемешать массив чисел?

    function shuffle( array ) {
      for(var j, x, i = array.length; i; j = parseInt(Math.random() * i), x = array[--i], array[i] = array[j], array[j] = x);
        return true;
    }
    
    var a = [1,2,3,4,5,6,7,8,9];
    
    shuffle(a);
    
    out.innerHTML = a.toString();

    https://jsfiddle.net/uhhqben9/

    UPDATE:

    Все просто — функция перемешивает массив чисел.

    Вот ваша функция:

    function getRandom(min, max) {
      var arr = [];
      for (var i = 0; i < max; i++) {
        x = Math.floor(Math.random() * (max - min + 1)) + min;
        if (arr.indexOf(x)) {
          return;
        }
        else {
          arr.push(x);
        }
        return arr;
      }
    }


    Дорабатываем ее с использованием функции shuffle:

    function getRandom(min, max) {
      // Получаем массив чисел из диапазона от min до max
      var arr = Array.from(Array(max - min + 1).keys(), x => x + min);
      // Перемешиваем
      shuffle(arr);
      // возвращаем перемешанный массив
      return arr;
    }


    И можем использовать для получения массивов неповторяющихся случайных чисел

    var a = getRandom(3,15);

    https://jsfiddle.net/uhhqben9/1/

    .
    Ответ написан
    Комментировать
  • Есть ли бесплатные аналоги avocode или adobe creative cloud?

    Есть похожий инструмент. Называется Marsy https://vk.com/markupeasy Функционал не такой большой, но он ещё только начал развиваться.
    Умеет стили доставать, копировать текст в один клик и ещё несколько фишек. Мне в работе помогает. Надеюсь не заглохнет.
    Ответ написан
    Комментировать