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 scramble words</textarea>
<button onclick='shuffle()'>Shuffle</button>
关于javascript - 创建一个JavaScript字符串/单词加扰器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42334640/