在数组

时间:2017-02-26 23:10:15

标签: javascript arrays function

请原谅我,我对语言和编程实践并不熟练且相当新。我正在创建一个按钮,提示用户输入一个数字后输入一个数字,我创建一个for循环,迭代的数量与数字相同。例如,用户输入4并且屏幕将显示0 1 2 3然后我有一个按钮,要求用户输入一个数字以查看该数字是否存在于前一个数组中。因此,如果用户输入3,它将显示"它存在"如果他们输入5则会显示"未找到号码"。我应该创建一个数组来存储迭代,然后通过搜索数字的函数运行该数组。寻求指导,谢谢你的帮助。



     function getNumber() {
      
      var el = document.getElementById("demo");
    
      // Get the user's input and convert it to a number
      var n = parseInt(prompt("Please enter a number"),10);
      
      // Set up a string that will become the output.
      var output = " ";
    
      
      // loop through given number
      for(var i = 0; i < n; i++){
        
        // variable containing iterations
        output += i;
        //var numArray[i] = output;
      }
    
      //display iterations
      el.textContent = output;
    
    }
    
    function findNumber(){
    	var sn = parseInt(prompt("Search for number"),10);
    
    	for(var j = 0; j < sn; j++){
    
    	}
    
    }
    
&#13;
<button onclick="getNumber()">Click!</button>
<p id="demo"></p>
<button onclick ="findNumber()">Click!</button>
&#13;
&#13;
&#13;

4 个答案:

答案 0 :(得分:1)

将您的n变量设为全局 比较sn是否高于n

&#13;
&#13;
var n; // Make it global

function getNumber() {

  var el = document.getElementById("demo");

  // Get the user's input and convert it to a number
  n = parseInt(prompt("Please enter a number"), 10);

  // Set up a string that will become the output.
  var output = " ";


  // loop through given number
  for (var i = 0; i < n; i++) {

    // variable containing iterations
    output += i;
    //var numArray[i] = output;
  }

  //display iterations
  el.textContent = output;

}

function findNumber() {
  var sn = parseInt(prompt("Search for number"), 10);
  var isHigher = sn > n; // n is now accessible in this function
  var message = isHigher ? "Not found" : "Number found!";
  alert( message );
}
&#13;
<button onclick="getNumber()">Click!</button>
<p id="demo"></p>
<button onclick="findNumber()">Click!</button>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

在这个理论示例中,您只需要检查输入的第二个数字是否小于第一个数字。如果要搜索任何数字数组中的数字,可以使用javascript indexOf函数。见下面的例子:

var arr = [1,6,77,888];

if (arr.indexOf(66) > -1) {
 alert('number is in array');
} else {
 alert('number is not in array');
 }

答案 2 :(得分:1)

要搜索数组,请使用JavaScript数组的indexOf()方法。原始帖子给出了一个用myArray[x]=x填充数组的示例,创建了其他解决方案指出的选项。假设您要搜索更一般的数组,可以直接使用indexOf或定义返回truefalse的函数:

function inArray(myArray, queryValue) {
    return myArray.indexOf(queryValue) > -1;
};

JavaScript中的数组是包含pop()indexOf()等其他方法的对象.JavaScript对象是关联数组;此解决方案仅适用于Array对象。使用[]文字或Array()构造函数构造数组对象。与其他JavaScript关联数组不同,数组只能包含由int命名的属性。请参阅Eloquent JavaScript

答案 3 :(得分:0)

有几种方法可以做到这一点。为简单起见,我将在这里使用全局变量。

     
     // A global variable to store user input
     var userInput;        
     
     function getNumber() {
      
      var el = document.getElementById("demo");
    
      // Get the user's input and convert it to a number
      var n = parseInt(prompt("Please enter a number"),10); 
      
      // Store the user's input to our global variable
      userInput = n; 
      
      // Set up a string that will become the output.
      var output = " ";
    
      
      // loop through given number
      for(var i = 0; i < n; i++){
        
        // variable containing iterations
        output += i;
        //var numArray[i] = output;
      }
    
      //display iterations
      el.textContent = output;
    
    }
    
    function findNumber(){
        var el = document.getElementById("result");
    	var sn = parseInt(prompt("Search for number"),10);
        
        // If number is within the range
        if (sn < userInput) {
          el.textContent = "it exists";
        } 
        
        // If number is not within the range
        else {
          el.textContent = "number not found";
        }
    }
    
<button onclick="getNumber()">Click!</button>
<p id="demo"></p>
<button onclick ="findNumber()">Click!</button>
<p id="result"></p>