我今天遇到了一个错误,我不确定它为什么会发生。在第二个for循环中,将不定义对数据的访问,而不是作为参数插入到函数中的数据。不知何故,数据获取null的值,而不是传递给此函数的Object。有谁知道为什么?我得到的错误是“数据未定义”。
createDataObject: function (data) {
let dataObj = data.source[0];
let backedData = data.backedData;
for (let i in dataObj) {
let d = dataObj[i];
d.data = { source: d.data };
}
for (let i = 0; i < data.backedData.length; i++) {
let bd = data.backedData[i]; //<- this is where the error occurrs
let data = bd.data[0];
}
}
以下是对象外部的一些代码,如果您想尝试,我正在使用,这将在您的控制台或节点中工作。好像我遇到了一个Javascript编译器错误。我不确定。
createDataObject({source: [[{data: 1}]], backedData: [1,2,3, 4]});
如果我执行以下操作,上面的代码将起作用
createDataObject: function (data) {
let dataObj = data.source[0];
let backedData = data.backedData; //create the backedData variable here
for (let i in dataObj) {
let d = dataObj[i];
d.data = { source: d.data };
}
for (let i = 0; i < backedData.length; i++) {
let bd = backedData[i]; // no Error
let data = bd.data[0];
//.....
}
}
答案 0 :(得分:0)
在第二个for循环中,您创建另一个数据对象。不在for循环的第一行创建数据。 尝试使用
for (let i = 0; i < data.backedData.length; i++) {
let bd = data.backedData[i];
let d= bd.data[0]; // Convert data to d or another variable name
//.....
}