如何在Javascript中创建许多变量

时间:2013-06-20 14:43:36

标签: javascript variables

大家好! 我是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) {

            }
        }

我打算制作一堆变量,每个变量的名称都有一个不同的数字。我不需要更简单或不同的方式来编写代码。那么如何让脚本自动编写许多不同的变量呢?提前谢谢!

3 个答案:

答案 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] = 0myArray[1] = 1myArray[2] = 3myArray[3] = 6myArray[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;
}