首页 文章

如何在javascript中使用textarea对数字进行随机播放

提问于
浏览
-1

如果我把数字放入textarea这样:

418484
418485
418486

我希望它们被洗牌,我想要一个像这样的输出:

418485
418484
418486

我不想改变这些值 - 我只是想要一些JavaScript或jQuery,它们会改变这些数字并在我的网页上给我结果 .

1 回答

  • 1

    我从this answer找到了这个很棒的shuffle函数:

    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 + "
    "); })

    你去吧!

    编辑:

    如果你想在另一个_64985中显示洗牌后的数字:

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

相关问题