Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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_Arrays_Variables - Fatal编程技术网

如何在不声明其他变量更改的情况下更改javascript数组中的变量?

如何在不声明其他变量更改的情况下更改javascript数组中的变量?,javascript,arrays,variables,Javascript,Arrays,Variables,我有一个随机测验,为了检查答案,我使用了一个变量。但是,它只是跳到末尾,并将变量声明为“11” 检查它的警报代码为: function display_alert() { if (celebrity===1) { alert("1") } else if (celebrity===2) { alert("2") } else if (celebrity===3) { alert("3") } else if (celebrity===4) { al

我有一个随机测验,为了检查答案,我使用了一个变量。但是,它只是跳到末尾,并将变量声明为“11”

检查它的警报代码为:

function display_alert()
  {
if (celebrity===1)
  {
  alert("1")
  }
else if (celebrity===2)
  {
  alert("2")
  }
else if (celebrity===3)
  {
  alert("3")
  }
else if (celebrity===4)
  {
  alert("4")
  }
else if (celebrity===5)
  {
  alert("5")
  }
else if (celebrity===6)
  {
  alert("6")
  }
else if (celebrity===7)
  {
  alert("7")
  }
else if (celebrity===8)
  {
  alert("8")
  }
else if (celebrity===9)
  {
  alert("9")
  }
else if (celebrity===10)
  {
  alert("10")
  }
else if (celebrity===11)
  {
  alert("11")
  }
else
  {
  alert("This is for debugging")
  }
  }

我认为这是因为多变量声明,但我不知道如何转义它们。为了澄清困惑,我正在为一个学校项目做一个名人测验,并想用每个数组的值来定义它。

不是答案,只是一个评论。在代码中,您有:

aVocab[intCat]= new Array();
aVocab[intCat][0]="FIRST"
aVocab[intCat][1] = new Array()
aVocab[intCat][1][intIncr++]="a"; var celebrity = 1
aVocab[intCat][1][intIncr++]="b"; var celebrity = 2
...
aVocab[intCat][1][intIncr++]="k"; var celebrity = 11
它多次声明名人,每次都指定一个新值。多重声明不是有害的,只是多余的。在代码末尾,名人将有最后一个赋值,即
11

我认为这是因为多变量声明,但我不知道如何转义它们

不是多个声明,而是多个赋值


您没有解释什么是aVocab或intCat,也没有说明intIncr是如何初始化的。无论如何,也许bfavaretto的评论是关于金钱的,你想要某种对象数组。

试着在每个
var名人=n
语句周围放一个if语句,否则所有语句都会运行,只有最后一个才会起作用。名人变量当前不是数组的一部分,您只需将其重新声明11次。提示:使用switch语句使用
名人
尝试实现什么?当你拥有它时,你会一次又一次地重新定义它,把它的值保留为11,所以你的函数做的正是你所期望的。应该发生什么?也许你正在数组中寻找对象?类似于
aVocab[intCat][1][intIncr++]={key:'a',名人:1}
?请使用一个简单的
函数display_alert(){alert(名人);}
(如果需要“调试警报”,可以检查类型、范围和完整性)这个测验应该是将你收到的问题随机化并显示出来,但我希望警报框显示答案,所以我给变量分配了11次,每个问题一次。至于您的问题,aVocab、intCat和intIncr都只是脚本的一部分,用于随机化数组结果,但效果很好。
aVocab[intCat]= new Array();
aVocab[intCat][0]="FIRST"
aVocab[intCat][1] = new Array()
aVocab[intCat][1][intIncr++]="a"; var celebrity = 1
aVocab[intCat][1][intIncr++]="b"; var celebrity = 2
...
aVocab[intCat][1][intIncr++]="k"; var celebrity = 11