2017-07-30 25 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] ..,謝謝 –