2015-05-13 37 views
-2

我在控制檯上收到以下錯誤消息。定義的數組值顯示爲undefined

Uncaught TypeError: Cannot read property '1' of undefined 

age= 55; 
 
array = new Array(); 
 
array[55] = [8.7, 7.5]; 
 
array[56] = [8.9, 7.6]; 
 
array[57] = [9, 7.7]; 
 
array[58] = [9.2, 7.8]; 
 
array[59] = [9.4, 7.9]; 
 
array[60] = [9.6, 8]; 
 

 
data = array[age]; 
 
console.log(data[0] + " | " + data[1]);
,如果你想在元素訪問

+0

稀疏陣列是不好的做法,爲什麼你需要這樣做? – elclanrs

+0

@elclanrs正試圖從'data'數組中獲取值 –

+2

但是你爲什麼要從索引55開始?您可能需要一個集合(對象數組),如'[{age:55,data:[8.7,7.5]},{...},{...}]'。然後你可以使用像'filter'這樣的數組方法來獲得你需要的東西。 – elclanrs

回答

-2

嗯,你必須這樣做。就像你買數據變量一樣,只有一個元素,它是一個有兩個值的數組。

var data= array[age]; 
    console.log('data :' + data[0]); // this display array[8.5,7.5] 
+0

這是不正確的。 '[8.7,7.5]'是一個包含兩個元素的數組。 –

+0

'data [0]'將顯示'8.5'。我不明白你爲什麼認爲它會是一個數組? –

0

我測試你的代碼,但它並沒有錯誤,輸出「8.7 | 7.5」 correctly.However,當我在嚴格模式下進行測試,它有錯誤,因爲缺少「VAR」當你定義變量。