Scramble

by Ryan Perez

HTML

<p>The generated words are anagrams (mixed letters) of the original word, but our brain has no trouble in giving them a meaning.

The principle is identical with some typographical or spelling errors for which the brain adapts without problems.</p>

JavaScript

var text = document.body.innerText;
var words = text.split(" ");
var scrambled = "";
for (var i = 0; i < words.length; i++) {
    var word = words[i];
    var letters = word.split("");
    var first = letters[0];
    var last = letters[letters.length - 1];
    for (var j = 1; j < letters.length - 1; j++) {
        var letter = letters[j];
        var index = Math.floor(Math.random() * (letters.length - 2)) + 1;
        var temp = letters[index];
        letters[index] = letter;
        letters[j] = temp;
    }
    letters[0] = first;
    letters[letters.length - 1] = last;
    scrambled += letters.join("") + " ";
}
document.body.innerText = scrambled;