Javascript 测试未初始化的数组元素是否不工作

Javascript 测试未初始化的数组元素是否不工作,javascript,multidimensional-array,Javascript,Multidimensional Array,我试图测试数组是否添加了第二维度。是的,我把新唱片推到它上面,如果没有,我加上第二维度,然后推。我在多个地方读过测试第二维度未定义的方法,但它对我不起作用。代码如下: if ( typeof missionData[numMissions][0] === 'undefined') { missionData[numMissions] = []; missionData[numMissions].push(missionRecords.record[index]) } else {

我试图测试数组是否添加了第二维度。是的,我把新唱片推到它上面,如果没有,我加上第二维度,然后推。我在多个地方读过测试第二维度未定义的方法,但它对我不起作用。代码如下:

if ( typeof missionData[numMissions][0] === 'undefined') {
    missionData[numMissions] = [];
    missionData[numMissions].push(missionRecords.record[index])
}
else {
    console.log('both array dimensions exist, pushing record');
    missionData[numMissions].push(missionRecords.record[index]);
}
当它执行时,我得到以下错误:

controller.js:710 Uncaught TypeError: Cannot read property '0' of undefined
我读过的所有东西都告诉我我在做什么是正确的,但显然不是。我错过了什么


谢谢….

missionData[numMissions]
阵列本身

您不需要访问第0个元素。检查阵列是否存在

if ( typeof missionData[numMissions] === 'undefined') {
就这些

if ( typeof missionData[numMissions] === 'undefined') {
    missionData[numMissions] = [];
    missionData[numMissions].push(missionRecords.record[index])
}
else {
    console.log('both array dimensions exist, pushing record');
    missionData[numMissions].push(missionRecords.record[index]);
}

问题是您试图访问不存在的数组的0位置的元素,因此会出现该错误。你可以更干燥,因为你总是要推任务记录。不管怎样,记录[索引]:

//If undefined you can just use the !(not) operator.
if (!missionData[numMissions]) {
    missionData[numMissions] = [];
}
missionData[numMissions].push(missionRecords.record[index]