function scramble(a){a=a.split("");for(var b=a.length-1;0<b;b--){var c=Math.floor(Math.random()*(b+1));d=a[b];a[b]=a[c];a[c]=d}return a.join("")}


我有以下代码,它似乎可以通过调用警报来加扰单个单词:

alert(scramble('Like this.'));


这是我要尝试做的事情:我希望能够在文本区域中输入文本,并用换行符隔开,并逐行随机打乱每个字符串。例如:

testing
scramble
words


将输出类似:

sgnitte
rceamslb
dwros


有人可以帮我吗?

最佳答案

function shuffle(str) {
  var str = document.getElementById('txt');
  var a = str.innerHTML;
  var newArr = [];
  var neww = '';
  var text = a.replace(/[\r\n]/g, '').split(' ');

  text.map(function(v) {
    v.split('').map(function() {
      var hash = Math.floor(Math.random() * v.length);
      neww += v[hash];
      v = v.replace(v.charAt(hash), '');
    });
    newArr.push(neww);
    neww = '';
  });
  var x = newArr.map(v => v.split('').join(' ')).join('\n');
  str.value = x.split('').map(v => v.toUpperCase()).join('');
}

<textarea cols='60' rows='8' id="txt">testing &#13;&#10;scramble &#13;&#10;words</textarea>
<button onclick='shuffle()'>Shuffle</button>

关于javascript - 创建一个JavaScript字符串/单词加扰器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42334640/

10-08 22:24