创建具有数组长度的Javascript变量

创建具有数组长度的Javascript变量,javascript,rename,Javascript,Rename,在这个函数中,我需要创建一个名为“dorfX”的新变量。X是变量将进入的数组的长度。例如,这将生成一个名为“dorf5”的变量,其参数在函数“makeADorf”中指定。但是,它不想工作,因为变量的名称没有标识 据我所知,要么我需要以某种方式重命名变量,要么我想办法让它工作 这可能有一个简单的答案,但我对编程相当陌生,如果能得到一些帮助,我将非常感激。谢谢 function guildRecruit(){ var price = Math.floor((Math.random()*100

在这个函数中,我需要创建一个名为“dorfX”的新变量。X是变量将进入的数组的长度。例如,这将生成一个名为“dorf5”的变量,其参数在函数“makeADorf”中指定。但是,它不想工作,因为变量的名称没有标识

据我所知,要么我需要以某种方式重命名变量,要么我想办法让它工作

这可能有一个简单的答案,但我对编程相当陌生,如果能得到一些帮助,我将非常感激。谢谢

function guildRecruit(){
    var price = Math.floor((Math.random()*100)+1) + (dorves.length*50);
    var recruit = prompt("Hello there friend. Would you like to recruit an adventurer?");
    if(recruit == "yes"){
        var dorf(dorves.length) = new makeADorf("Testificate","123");
        dorf(dorves.length).push(dorf(dorves.length));
    }else{
        confirm("Thank you for visiting the Dragon Slayer Guild.");
    }
}

我认为您对如何设置代码有点困惑。根据您编写的内容猜测,您似乎想要一个函数:

  • 创建一个新的dorf/冒险家并记住它
  • 除了写一条信息,什么也不做
为此,您可能需要在函数外部创建一个数组。我将把阵列称为“冒险家”。如果生成新dorf的条件为真,则将新dorf推送到“冒险家”数组。类似这样的内容(注意:我删除了所有使用dorves的代码):


编辑:我想不出用数字创建变量会有什么用处。我也相当肯定,这样做是不可能的。数组的要点是使用与之类似的逻辑,但您的Dorve会像
冒险家[0]
一样被引用,而不是
冒险家(someFunction)

您编写的代码没有多大意义。您正在尝试创建一个末尾带有数字的变量吗?为什么要使用变量名的变量?不要使用
new Array()
!使用
[]
。它速度更快,
新数组(int)
[int]
的效果并不完全相同。Jan Dvorak的观点是正确的,如果数组对你有意义,请使用他的建议。我的评论是针对你的,亚洲。你应该在你的代码中修复
新数组
。我认为轻微的优化可以等到他理解代码正在/应该做什么之后。这不是轻微的优化
new Array()
是代码气味,如果只是因为
new Array(content)
有效,除非
content
是一个数字。现在解决这个问题要比以后改变他的方式容易得多。
var adventurers = []; // new Array(); would do the same thing, read Jan Dvorak's comment
function guildRecruit() {
    var price = Math.floor((Math.random()*100)+1);
    var recruit = prompt("Hello there friend. Would you like to recruit an adventurer?");
    if (recruit == "yes") adventurers.push(new makeADorf("Testificate","123"));
    else confirm("Thank you for visiting the Dragon Slayer Guild.");
}