Как перетасовать числа с textarea в JavaScript - PullRequest
0 голосов
/ 08 декабря 2018

Если я помещу числа в текстовое поле следующим образом:

418484
418485
418486

Я хочу, чтобы они были перетасованы, и я хочу вывод, подобный этому:

418485
418484
418486

Я нехочу, чтобы значения были изменены - я просто хочу немного JavaScript или jQuery, которые будут перетасовывать эти числа и давать мне результат на моей веб-странице.

1 Ответ

0 голосов
/ 09 декабря 2018

Я нашел эту замечательную функцию случайного воспроизведения из этого ответа :

function shuffle(array) {
  var currentIndex = array.length, temporaryValue, randomIndex;

  // While there remain elements to shuffle...
  while (0 !== currentIndex) {

    // Pick a remaining element...
    randomIndex = Math.floor(Math.random() * currentIndex);
    currentIndex -= 1;

    // And swap it with the current element.
    temporaryValue = array[currentIndex];
    array[currentIndex] = array[randomIndex];
    array[randomIndex] = temporaryValue;
  }

  return array;
}

Оттуда вы можете просто получить значение ввода <textarea> и разделить его на основена разрывах строк:

var numbers = document.getElementById("numberInput").value.split("\n");

Или, если вы предпочитаете пробелы:

var numbers = document.getElementById("numberInput").value.split(" ");

Затем просто передайте его в функцию:

var shuffledNumbers = shuffle(numbers);

И покажите их наперелистывая их и записывая их в документ:

shuffledNumbers.forEach(function(currentNumber) {
    document.write(currentNumber + "<br />");
})

И все!

РЕДАКТИРОВАТЬ:

Если вы хотите отобразить перетасованные числа в другом<textarea> вместо:

var output = document.getElementById("output");
shuffledNumbers.forEach(function(currentNumber) {
    output.innerHTML += currentNumber + "\n";
})
...