开发者问题收集

无法读取 if 中未定义的属性

2018-07-26
109

我想检查是否设置了某些内容...

    if(typeof app.user.case.item_unbox.image["600px"] != 'undefined') {
        app.user.winnings.image = app.user.case.item_unbox.image["600px"];
    } else {
        app.user.winnings.image = app.user.case.item_unbox.image;
    }

但是当我没有提供时,我得到了 Uncaught TypeError: Cannot read property '600px' of undefined。但是我想要 app.user.case.item_unbox.image

我该怎么做?我也试过了

if(app.user.case.item_unbox.image["600px"]) {

我得到了同样的错误...因为它没有设置。但是没关系...因为我会设置 else...

2个回答

错误是因为 app.user.case.item_unbox.image 未定义,因此您需要提供类似

const img = app.user.case.item_unbox.image;
if(img && img["600px"]) {
    app.user.winnings.image = img["600px"];
} else {
    app.user.winnings.image = img;
}
的检查
Shubham Khatri
2018-07-26

在这种情况下,你的图像道具是未定义的,所以...

if(app.user.case.item_unbox.image && app.user.case.item_unbox.image["600px"])

应该可以工作

Charles Assuncao
2018-07-26