当试图只从下面的数组检索数值时,我得到了一个错误“无法读取未定义的属性'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);
}错误:无法读取未定义的属性“toString”
发布于 2017-06-01 06:53:15
您应该使用< 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);
}发布于 2017-06-01 07:00:05
您的数组只包含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);
}
https://stackoverflow.com/questions/44300352
复制相似问题