Javascript 为什么数据为空?

Javascript 为什么数据为空?,javascript,object,Javascript,Object,我今天遇到了一个错误,我不知道为什么会发生。在第二个for循环中,对数据的访问将是未定义的,而不是作为参数插入函数中的数据。不知何故,数据得到的是null值,而不是传递给此函数的对象。有人知道为什么吗?我得到的错误是“数据未定义” 如果我执行以下操作,上面的代码将起作用 createDataObject: function (data) { let dataObj = data.source[0]; let backedData = data.backed

我今天遇到了一个错误,我不知道为什么会发生。在第二个for循环中,对数据的访问将是未定义的,而不是作为参数插入函数中的数据。不知何故,数据得到的是null值,而不是传递给此函数的对象。有人知道为什么吗?我得到的错误是“数据未定义”

如果我执行以下操作,上面的代码将起作用

    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];
            //.....
        }
    }
createDataObject:函数(数据){
设dataObj=data.source[0];
让backedData=data.backedData;//在此处创建backedData变量
for(让我输入dataObj){
设d=dataObj[i];
d、 数据={来源:d.data};
}
for(设i=0;i
在第二个循环中,创建另一个数据对象。不在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
        //.....
    }
for(设i=0;i
console.log(backedData)
null
与“未定义”有很大不同。确切的错误是什么?真的是那条线把它扔出去了吗?当您将相关变量记录到控制台时会发生什么情况?@Jackstine但是它会在第一行抛出。for循环没有什么特别之处。您可以将其作为函数中的第一行代码:
console.log(data.backedData[0])
。它要求backedData为数组。无法使用提供的代码复制该行为:
    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];
            //.....
        }
    }
   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
        //.....
    }