2017-07-30 82 views
0

正常触发我正在二维数组不在控制台

var spacetime = []; 
spacetime.push({ 
    Title : [], 
    Space : [], 
    Time : [] 
}); 

    if (doSelect('Location').length > 0 && doSelect('Date').length > 0) { 
    for(var i = 0; i < dateText.length; i++) { 
     d += dateText[i] + ' '; 
    } 
    if(location.match(regex)) { 
     spacetime[0].Title.push("Hello"); 
     spacetime[2].Time.push(d); 
     }); 
    } 
    }; 

但控制台给我:

Cannot read property 'Time' of undefined 

然而d被罚款,因为它输出正确

+0

是'时空[2] === null'? – Stephen

+1

在给定的代码中,您尝试访问索引为'2'的对象('spacetime [2]'),但只有一个元素被推送到'spacetime'。 –

回答

0

你只推一个反对spacetime数组,因此只有索引0“可用”才能访问它。你应该[0]代替[2]设置Time时:

var spacetime = []; 
spacetime.push({ 
    Title : [], 
    Space : [], 
    Time : [] 
}); 

    if (doSelect('Location').length > 0 && doSelect('Date').length > 0) { 
    for(var i = 0; i < dateText.length; i++) { 
     d += dateText[i] + ' '; 
    } 
    if(location.match(regex)) { 
     spacetime[0].Title.push("Hello"); 
     spacetime[0].Time.push(d); 
     }); 
    } 
    }; 
+0

我明白了,所以基本上其他数组仍被视为主数组的索引[0]? –

+1

什么是时空[0]是具有数组作为价值对象:{ 标题:[], 空间:[], 时间:[] } –

+0

确定不够公平,我是混乱,应该把它们看做[0],[1],[2] ..,谢谢 –