请原谅我,我对语言和编程实践并不熟练且相当新。我正在创建一个按钮,提示用户输入一个数字后输入一个数字,我创建一个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;
答案 0 :(得分:1)
将您的n
变量设为全局
比较sn
是否高于n
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;
答案 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
或定义返回true
或false
的函数:
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>