Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.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

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

获取JavaScript数组测试中的未定义错误

获取JavaScript数组测试中的未定义错误,javascript,arrays,loops,undefined,typeerror,Javascript,Arrays,Loops,Undefined,Typeerror,我试图使用数组中的数据进行简单的多项选择,例如测验,但我遇到了一个错误:TypeError:无法读取未定义的的属性“0” 可能的选择应该是4,正确的答案是第一选择。我已尝试在线搜索解决方案,但我不知道是什么原因导致错误以及如何修复错误: var主列表=[ [“印度尼西亚”、“雅加达”], [“马来西亚”、“吉隆坡”], [“菲律宾”、“马尼拉”], [“新加坡”、“新加坡”], [“泰国”、“曼谷”], [“越南”、“河内”] ]; 函数randomNoRepeats(数组){ var cop

我试图使用数组中的数据进行简单的多项选择,例如测验,但我遇到了一个错误:
TypeError:无法读取未定义的
的属性“0”

可能的选择应该是4,正确的答案是第一选择。我已尝试在线搜索解决方案,但我不知道是什么原因导致错误以及如何修复错误:

var主列表=[
[“印度尼西亚”、“雅加达”],
[“马来西亚”、“吉隆坡”],
[“菲律宾”、“马尼拉”],
[“新加坡”、“新加坡”],
[“泰国”、“曼谷”],
[“越南”、“河内”]
];
函数randomNoRepeats(数组){
var copy=array.slice(0);
返回函数(){
如果(复制长度<1){
copy=array.slice(0);
}
var index=Math.floor(Math.random()*copy.length);
var项目=复制[索引];
拷贝。拼接(索引,1);
退货项目;
};
}
var chooser=randomNoRepeats(主列表)//随机化选择
//log(chooser());
var quizArea=document.getElementById(“测试区域”);
变量a=[];//用于存储随机化项的新空数组
变量c=[];//用于存储随机项的新空数组(副本)
var b;
正确答案;
对于(变量i=0;i

问题来自声明
c=a。它不复制数组。
c
a
都引用相同的数组对象

这意味着线
a.splice(索引,1)
a
c
更改到位


这里的一个解决方案是在最后一个for循环中使用
a
的真实副本

for(变量i=0;i
var主列表=[
[“印度尼西亚”、“雅加达”],
[“马来西亚”、“吉隆坡”],
[“菲律宾”、“马尼拉”],
[“新加坡”、“新加坡”],
[“泰国”、“曼谷”],
[“越南”、“河内”]
];
函数randomNoRepeats(数组){
var copy=array.slice(0);
返回函数(){
如果(复制长度<1){
copy=array.slice(0);
}
var index=Math.floor(Math.random()*copy.length);
var项目=复制[索引];
拷贝。拼接(索引,1);
退货项目;
};
}
var chooser=randomNoRepeats(主列表)//随机化选择
//log(chooser());
var quizArea=document.getElementById(“测试区域”);
变量a=[];//用于存储随机化项的新空数组
var c;
var b;
正确答案;
对于(变量i=0;i