大家好! 我是Javascript的新手,我想通过制作一个程序来挑战自己,该程序将确定输入的数字是否为素数。到目前为止,这是我的代码:
var a = prompt('What should the number be?');
var n = parseInt(a);
var counter = n - 1;
var b = n/counter;
var c = Math.floor(b);
if (n < 1) {
window.alert('Invalid: negative numbers are neither prime nor composite!');
}
if (n === 1){
window.alert('1 is neither prime nor composite!');
} else {
if (b-c != 0) {
}
}
我打算制作一堆变量,每个变量的名称都有一个不同的数字。我不需要更简单或不同的方式来编写代码。那么如何让脚本自动编写许多不同的变量呢?提前谢谢!
答案 0 :(得分:5)
这听起来像使用数组的好例子。这是一种在同一变量名中存储大量值的简单方法,但是由索引调用 - 一个数字。查看arrays的MDN页面。
以下是在数组中存储大量值的示例:
var bigNumber = 100000;
var myArray = new Array();
var tally = 0;
for( i = 0; i < bigNumber; i++ )
{
tally += i;
myArray[i] = tally;
}
完成后,myArray将包含100000个值。 myArray[0] = 0
,myArray[1] = 1
,myArray[2] = 3
,myArray[3] = 6
,myArray[4] = 10
等。
答案 1 :(得分:2)
我不认为你的问题是有太多变数。您应该使用函数来分隔具有不同目的的代码部分:
function isPrime(n) {
var counter = n - 1;
var b = n / counter;
var c = Math.floor(b);
if (n < 1) {
return false;
}
if (n === 1) {
return false;
} else {
if (b - c != 0) {
}
}
}
var n = parseInt(prompt('What should the number be?'));
alert('The given number ' + n + ' is ' + (isPrime(n) ? '' : ' not') + ' a prime.');
或
function PrimeChecker(){
var n = this.readNumber();
this.displayResult(n, this.isPrime(n));
}
PrimeChecker.prototype = {
readNumber: function (){
return parseInt(prompt('What should the number be?'));
},
isPrime: function (n) {
var counter = n - 1;
var b = n / counter;
var c = Math.floor(b);
if (n < 1) {
return false;
}
if (n === 1) {
return false;
} else {
if (b - c != 0) {
}
}
},
displayResult: function (n, isPrime){
alert('The given number ' + n + ' is ' + (isPrime ? '' : ' not') + ' a prime.');
}
};
new PrimeChecker();
如果要对变量进行分组,您仍然可以使用对象来存储它们:
var map = {
a: 1,
b: 2,
c: 3
};
map.d = 4;
map.e = 5;
alert(map.e);
如果生成没有名称的变量,则可以使用数组:
var array= [
"a",
"b",
"c"
];
array.push("d");
array.push("e");
alert(array[4]);
答案 2 :(得分:0)
这样做的邪恶方法是在全局对象(窗口)上创建变量,如下所示:
// This is bad because it pollutes the global namespace:
for (var i = 0; i < 10; i++) {
window['num' + i] = i;
}
更好的方法是创建一个空对象并将其用作变量的命名空间。
var o = {};
for (var i = 0; i < 10; i++) {
o['num' + i] = i;
}