无法读取undefined的属性,虽然有检查

问题描述:

我觉得我想在这里哭几个小时。无法读取undefined的属性,虽然有检查

为什么这段代码返回错误cannot read property overwrite_date' of undefined?!

for (var i = 0; i < temp.length; i++) { 

    console.log(data[i]) //return 3 item, no null or undefined value at all 

    if(data[i]){ 

    let date = moment(data[i].overwrite_date).format('YYYY-MM-DD'); 
    } 
} 
+0

你能告诉我们你的'data'? – gyre

+0

'temp'和'data'可能有不同的长度。 –

你迭代temp代替data

更改此:

for (var i = 0; i < temp.length; i++) { 

要这样:

for (var i = 0; i < data.length; i++) { 
        ▲ 
+0

没有什么不对,我想迭代temp并使用数据做temp的拼接。 –

+0

@GialaJefferson:好的,有些事情是错的,否则你不会得到错误。该错误似乎表明'temp'和'data'具有不同的长度,或者'data'没有数字属性。由于你的例子不完整,除猜测之外我们没有什么可以做的。 –