无法显示代码

时间:2017-06-11 05:50:52

标签: javascript html string loops for-loop

如何让这段代码显示在屏幕上?我做了一个程序,注意到一个字母不在序列中,即abce它会显示d。我的核心功能正常运行,但我无法显示它。这是我到目前为止所得到的。感谢。

HTML

<form id="Awesome">
  <label>Input Text Here: </label><input type="text" id="txtBox">
  <br><br>
  <label>Missing Letter: </label><input type="text" id="Results">
  <br><br>
  <input type="button" value="Calculate" id="Execute" onclick="displayMissingLetter()">
</form>

Javascript

function displayMissingLetter(str) {
  var numbers = str.split('').map(function(letter) {
    return letter.charCodeAt(); 
  });

  for (var i = 0; i < numbers.length; i++){
    if (numbers[i+1] - numbers[i] > 1){
      return String.fromCharCode(numbers[i] + 1);
    }    
  }

  return undefined;
}

2 个答案:

答案 0 :(得分:1)

function displayMissingLetter() {
  var str = document.getElementById('txtBox').value;
  var letters = []; 

  var numbers = str.split('').map(function(letter) {
     return letter.charCodeAt(); 
  });


  for (var i = 0; i < numbers.length; i++){
    if (numbers[i+1] - numbers[i] > 1){
        letters.push(String.fromCharCode(numbers[i] + 1));
        }    
    }
  document.getElementById('Results').value = letters.join('');
  return undefined;
}

答案 1 :(得分:0)

第一个问题是您没有将任何参数传递给displayMissingLetter函数(onclick="displayMissingLetter()")。它期望一个字符串作为第一个参数,这意味着你应该使用类似onclick="displayMissingLetter(txtBox.value)"

之类的东西来调用它

第二个问题是你没有对这个函数的返回值做任何事情,似乎你想把结果值设置为Results输入的值。如果是这种情况,您可以执行以下操作:onclick="Results.value = displayMissingLetter(txtBox.value)"

另一种方法是使用类似下面的例子。

function getMissingLetter(str) {
  var numbers = str.split('').map(function(letter) {
     return letter.charCodeAt(); 
  });

  for (var i = 0; i < numbers.length; i++){
  if (numbers[i+1] - numbers[i] > 1){
      return String.fromCharCode(numbers[i] + 1);
      }    
  }
  return undefined;
}

Execute.onclick = function(){
  var userInput = txtBox.value;
  var missingLetter = getMissingLetter(userInput);
  if(missingLetter){
     Results.value = missingLetter;
  }
}
<form id="Awesome">
  <label>Input Text Here: </label><input type="text" id="txtBox">
  <br><br>
  <label>Missing Letter: </label><input type="text" id="Results">
  <br><br>
  <input type="button" value="Calculate" id="Execute">
</form>