为什么Data Null?

时间:2017-12-06 18:01:24

标签: javascript object

我今天遇到了一个错误,我不确定它为什么会发生。在第二个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];
            //.....
        }
    }

1 个答案:

答案 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
        //.....
    }