2017-02-20 3 views
0

Программа должна запирать слово, которое вы ввели в коробку, разбить на несколько букв и перетасовать их. После этого он заглаживает первую букву и строчную букву остальных и выводит ее в ту же коробку.Скремблирование слова на случайные буквы

Я пытаюсь взломать слово на случайные буквы, но я не могу пройти мимо этой ошибки.

В хром он сказал, что у меня есть неожиданный идентификатор, и в мозилле он сказал, что у меня отсутствует скобка для newWord = shuffle (newWord); * fixed

Редактировать: теперь у меня есть ошибка, говорящая, что это заглавная буква не является функцией.

<html> 

<head> 
<title>Final</title> 
</head> 

<body> 
<h1>Final</h1> Random Word scrambler 
<br> 
<input type="text" id="word"> 
<input type="button" id="submit" value="Randomize" onclick="Random()"> 
<script language="javascript"> 
    word = document.getElementById("word").value 
    var n = word.length; 

    function Random() { 
      for (var start = 0; start < n; start++) { 
       var newWord = word.charAT(start) 

        newWord = shuffle(newWord); 

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

         while (0 !== currentIndex) { 

          randomIndex = Math.floor(Math.random() * currentIndex); 
          currentIndex -= 1; 

          temporaryValue = array[currentIndex]; 
          array[currentIndex] = array[randomIndex]; 
          array[randomIndex] = temporaryValue; 
         } 
         return array; 
        } 

        function capitalize(str) { 
         return str.replace(/\w\S*/g, function(txt) { 
          return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); 
         }); 
        Array.join(newWord); 
        } 
       } 
       if (newWord == newWord){ 

        document.getElementById("word").value = (capitalize(newWord)); 
       } 
      } 

    </script> 
</body> 

</html> 
+1

вы получаете эту ошибку б/с этой строки: 'вар newWord = (word.charAT (запуска)', вам необходимо удалить, что первый '(' – hackerrdave

+0

И 'charAT' должен быть 'charAt'. –

ответ

0

Эта линия:

var newWord = (word.charAT(start)

должно быть:

var newWord = word.charAt(start)

И вот гораздо более упрощенная версия того, что вы пытаетесь сделать:

// Get a reference to the DOM element, not a property of the element 
 
// that way you can access another property later without having 
 
// to re-scan the DOM for the element again 
 
var txtWord = document.getElementById("word"); 
 
var btn = document.getElementById("submit"); 
 

 
// Set up your events using DOM standards and not inline HTML event attributes 
 
btn.addEventListener("click", random); 
 

 
// By convention, use camelCase for naming 
 
function random() { 
 

 
    // Separate all the letters into an array 
 
    var letterArray = txtWord.value.split(""); 
 
    
 
    // create an new array from scrambled letters in the original array 
 
    var scrambledArray = []; 
 
    
 
    var len = letterArray.length; 
 
    for (var start = 0; start < len; start++) { 
 
    // Get a random number between 0 and the highest array index and put it in the new array 
 
    var num = Math.floor(Math.random() * letterArray.length) 
 
    scrambledArray.push(letterArray[num]); 
 
    
 
    // Remove letter from original array 
 
    letterArray.splice(num,1); 
 
    } 
 
    console.log(scrambledArray.join("")); 
 
}
<h1>Final</h1> Random Word scrambler 
 
<br> 
 
<input type="text" id="word"> 
 
<input type="button" id="submit" value="Randomize">

+0

ха-ха, но дело в том, что я не знаю, что верблюжьей шапки, или элементы дома –

+0

@VisilyRomani «Верблюд Кейс» - это то, где вы пишете первое слово в нижнем регистре, а все последующие слова являются заглавными буквами, как в: ' camelCase'. Посмотрите, как я написал 'scrambledArray' и' letterArray' и 'len'? –

+0

@VisilyRomani DOM (Document Object Model) - это объекты JavaScript, которые сопоставляются определенным элементам HTML. Ваш '' и ваш '' являются элементами DOM, и нам нужен доступ к ним в JavaScript. –

 Смежные вопросы

  • Нет связанных вопросов^_^