在JavaScript中使用分割功能后,如何推送变量?

  

错误:未捕获(承诺)TypeError:无法读取属性   未定义错误行的“推送”:“ this.name [i] .push(arrayData [0]);   “

我不明白,因为console.log(“ data is loading:” + arrayData [0]);之前的行正在工作!

关于异步吗?有人可以帮我吗?

这是我的代码:

 data: {
    name: []
  },methods: {
    LoadData: function() {
      console.log("onload fundtion. \n");
      fetch('http://localhost/store/skininfor.txt')
        .then(response => response.text())
        .then((data) => {
          //  console.log(data);
          var textByLine = data.split("\n");
          for (var i = 0; i < textByLine.length; i++) {
            var arrayData = textByLine[i].split(",");
            console.log("data is loaded:" + arrayData[0]);
            if (arrayData[0] !== undefined) {
               this.name[i].push(arrayData[0]);
            }
          }
        });
    },
starfoucs 回答:在JavaScript中使用分割功能后,如何推送变量?

通过这种方式this.name[i].push(arrayData[0]);,您试图将一个元素推到另一个元素中,这就是您遇到该错误的原因。

this.name是标签,而this.name[i]是一个元素,因此应为this.name.push(arrayData[0]);

,

名称数组中没有任何元素,因此您应该像这样推送。

this.name.push(arrayData[0]);
,

可能需要分配而不是推送,即

this.name[i] = arrayData[0];

(尽管我不确定。如果您定义了示例输入数据和所需的输出,那将会很有帮助)。

本文链接:https://www.f2er.com/2964964.html

大家都在问