繁体   English   中英

Uncaught TypeError:无法读取未定义的属性-javascript

[英]Uncaught TypeError: Cannot read property of undefined - javascript

我知道以前曾有人问过这个问题,但是我浏览了这个问题的不同版本,但没有找到针对我特定问题的答案。

我的代码:

var display = {

difference: function(a) {
    return Math.abs(state.price - state.greens[a].pricePer30);
},
// Some more methods here

运行代码时,我得到以下信息:

Uncaught TypeError: Cannot read property 'pricePer30' of undefined

但是,如果我跑步

console.log(display.difference(0))

它返回正确的答案。

当我阅读问题时:

我认为也许我正在使用的参数实际上已在脚本的其他地方重用,所以我将参数更改为:

var display = {

difference: function(num) {
    return Math.abs(state.price - state.greens[num].pricePer30);
},
// Some more methods

但是我得到了同样的错误信息。

我应该在代码中寻找什么来解决此问题?

问题很明显是对于特定索引a未定义state.greens [a]。 在消除棘手的问题之前添加一个检查,但是我猜您将不得不研究为什么索引a也未定义。

if(typeof state.greens[a] !== "undefined") {
    return Math.abs(state.price - state.greens[a].pricePer30);
} else {
    console.warn("Found undefined state for index: ", a);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM