【问题标题】:getting access to javascript object property beginning with number访问以数字开头的 javascript 对象属性
【发布时间】:2017-04-23 00:30:22
【问题描述】:

我正在调用一个返回对象的 api

var rain = data[i].rain;

$.get( "http://api.openweathermap.org/data/2.5/forecast?q=London,uk&mode=json&units=metric", function( data ) {
    var data = data.list;
    for(var i = 0; i < 12; i++){
        var rain = data[i].rain;
        console.log(rain)
    }
});

当我检查控制台时,rain 返回以下内容:

Object {3h: 0.005}
Object {3h: 0.03}

我希望rain.3h 可以让我访问 0.005 和 0.03,但事实并非如此。我收到以下错误消息:Unexpected token ILLEGAL

这是因为它以数字开头吗?谁能建议如何访问此属性?

【问题讨论】:

  • 如果属性名称是有效标识符,您只能使用点表示法访问属性。 '3h' 不是,所以使用方括号表示法。
  • @RobG 所以你总是可以使用括号表示法,但点表示法只在某些情况下?
  • @PaulFitzgerald:是的。

标签: javascript object


【解决方案1】:

是的,因为它以数字开头。

你可以这样访问:

rain['3h']

如果您有以数字或符号命名的对象属性,请使用括号表示法。

【讨论】:

  • Uncaught TypeError: Cannot read property '3h' of undefined 返回此错误
  • data[i].rain['3h'] 也许?
  • 是的,很好,明白了。谢谢,我会在时间允许的时候投票
猜你喜欢
  • 1970-01-01
  • 2011-03-15
  • 1970-01-01
  • 2017-04-04
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 2011-08-14
相关资源
最近更新 更多