2017-06-01 65 views
0

當試圖從下面的數組中檢索數值時,出現「無法讀取屬性'toString'undefined」錯誤。雖然我看到輸出正確給出,但我得到這個錯誤,代碼失敗。從混合字符數組中檢索只有整數值

var array=['~ 9 view passages','~ 17 view passages','~ 1 view passages','~ 3 view passages','~ 4 view passages','~ 1 view passages']; 
    for (var i=0;i<=array.length;i++){ 
    var Arraystring=array[i].toString(); 
    var temp1 = Arraystring.replace(" view passages",""); 
    var temp2 = temp1.replace("~",""); 
    var temp3=parseInt(temp2); 
    console.log("String converted Array "+Arraystring); 
    console.log("Stripped Array "+temp2); 
    console.log("Integer Array "+temp3); 
    } 

錯誤: 無法讀取的不確定

+0

使用爲(VAR I = 0;我 binariedMe

+0

可能你的陣列長度不一定是11 – binariedMe

+1

請移除平等並嚴格寫:for(VAR I = 0; i binariedMe

回答

2

財產 '的toString' 你應該使用< array.length代替<= array.length

目前您正在解析出界值,因此無法調用toString()函數。

嘗試這種方式

var array = ['~ 9 view passages', '~ 17 view passages', '~ 1 view passages', '~ 3 view passages', '~ 4 view passages', '~ 1 view passages']; 
for (var i = 0; i < array.length; i++) { 
    var Arraystring = array[i].toString(); 
    var temp1 = Arraystring.replace(" view passages", ""); 
    var temp2 = temp1.replace("~", ""); 
    var temp3 = parseInt(temp2); 
    console.log("String converted Array " + Arraystring); 
    console.log("Stripped Array " + temp2); 
    console.log("Integer Array " + temp3); 
} 
+1

與給出評論的人沒有任何不同的答案 – Sagar

1

您的陣列只包含5個元素。

但是,您正嘗試閱讀最多10個元素,因此即使腳本正常工作,您的錯誤也是如此。

修改腳本直到讀取數組的長度。

var array = ['~ 9 view passages', '~ 17 view passages', '~ 1 view passages', '~ 3 view passages', '~ 4 view passages', '~ 1 view passages']; 
 
for (var i = 0; i < array.length; i++) { 
 
    var Arraystring = array[i].toString(); 
 
    var temp1 = Arraystring.replace(" view passages", ""); 
 
    var temp2 = temp1.replace("~", ""); 
 
    var temp3 = parseInt(temp2); 
 
    console.log("String converted Array " + Arraystring); 
 
    console.log("Stripped Array " + temp2); 
 
    console.log("Integer Array " + temp3); 
 
}