仅从混合字符数组中检索整数值

时间:2017-06-01 06:47:02

标签: javascript arrays automation

我收到错误"无法读取属性' 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);
    }

错误: 无法读取属性&#39; toString&#39;未定义的

2 个答案:

答案 0 :(得分:2)

您应该使用< 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 :(得分: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);
}