Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用增量名称创建变量_Javascript_Variables - Fatal编程技术网

Javascript 如何使用增量名称创建变量

Javascript 如何使用增量名称创建变量,javascript,variables,Javascript,Variables,我有一些问题需要了解如何做到这一点 我创建了一个用于保存对象的变量: var myobject = new object(); 一切都很好;名称为“我的对象”,内容为新对象 如果我想要10个变量,我需要输入10个变量名 var myobject1 = new object(); var myobject2 = new object(); var myobject3 = new object(); var myobject4 = new object(); .... and so on 现在;

我有一些问题需要了解如何做到这一点

我创建了一个用于保存对象的变量:

var myobject = new object();
一切都很好;名称为“我的对象”,内容为新对象

如果我想要10个变量,我需要输入10个变量名

var myobject1 = new object();
var myobject2 = new object();
var myobject3 = new object();
var myobject4 = new object();
.... and so on
现在;我想用一个计数器增加变量的名称,而不是内容,所以我需要一个新对象多少次都无关紧要;名称将以增量方式更改。我不能对变量重复使用相同的名称,这是一个很长的过程。因此,结果将与上面相同,但我没有在n次变量名上实际写入10次

在sh中,我可以引用myobject作为名称,或者引用$myobject作为该变量的内容;但JS似乎没有这种方法

我试图放下逻辑,但我看不出变量名实际上是如何递增的:

//global variables
var counter=0;
var tempname;

function makeplentyofobj(){

    if (temp name)
        tempname= new object(); //this should make myobjectN
    else
        myobject= new object(); //this makes myobject1
    counter ++;
    tempname ='myobject'+counter; //this make a name for the next object)
}
当我运行它时,编译器将放入myobject,新对象计数器变为1,temp name包含字符串“myobject1”

如果我调用该函数2次,第二次我将使用counter=1,tempname将包含字符串“myobject1”。这就是我想用作下一个变量的名称。由于tempname不是空的,我在else条件下进行分支,但是tempname的内容将从string更改为object

相反,我希望获得一个新的变量名,它随计数器递增,因此每次调用var my object=new object时;作为计数器的增量,我得到

myobject1=new object();
myobject2= new object();
....
我怎样才能在JS中获得这个

编辑:

谢谢你的回复;它是复制品;虽然我的问题花了相当长的时间来解释我所做的事情,但另一个问题是我如何做到这一点


我的工作需要努力;我想下次我将跳过这项工作:

解决这类问题的通常方法是将对象放入数组中。这简化了存储和检索它们

var objArray = [];
objArray.push(new object());
objArray.push(new object());
objArray.push(new object());
objArray.push(new object());
或者,您甚至可以将它们放在初始声明中:

var objArray = [new object(), new object(), new object(), new object()];
如果您真的只需要泛型对象,可以简单如下:

var objArray = [{}, {}, {}, {}, {}];
然后,引用一个给定的元素就像

var obj = objArray[n];

请记住,数组以索引0开始,就像在objArray[0]中一样。

为什么不使用数组?不要使用这种方法。使用容器对象:可以是带索引的数组,也可以是带适当键的普通对象。我认为您需要了解数组的用途。@newbiez-只要您得到想要的答案,就不要担心它被标记为重复的。你应该先搜索,试图找到以前的问题,但是如果你没有找到,所以你发布了一个问题,而其他人知道有一个重复的问题,那就好了。这没问题。你问了一个问题,得到了一个解决问题的答案,这就是问题所在。objArray.push{}虽然它是对象而不是对象…@Derek朕會功夫 - 他们并不是在这里创建一个通用对象,而是一个大写字母的对象。我假设他们只是在这里使用伪代码;objarray[计数器]。推送新对象;也可以吗?@jfriend00-是的,我注意到了。是的,只是使用伪代码jfriend00;谢谢