This question already has answers here:
Can I get a javascript object property name that starts with a number?
                            
                                (2个答案)
                            
                    
                4年前关闭。
        

    

我正在使用从OpenWeatherMaps API获取天气信息,然后使用FlotJS将其绘制在图形上的应用程序。

数据来自:

http://api.openweathermap.org/data/2.5/forecast?lat=39.77476949&lon=-100.1953125

纬度,经度是动态生成的。您可以转到链接以了解发送回什么样的JSON响应。

我试图首先构造数组,以便在绘制图形时将它们传递到数据对象中,如下所示:

var temp = [];
var humidity = [];
var rain = [];

$.each(response.list, function(i, item){
    if(moment(item.dt, 'X').isSame(moment(), 'day')){
        temp.push([moment(item.dt, 'X').valueOf(), parseFloat(item.main.temp)]);
        humidity.push([moment(item.dt, 'X').valueOf(), parseFloat(item.main.humidity)]);
        rain.push([moment(item.dt, 'X').valueOf(), parseFloat(item.rain.3h)]);
    }
});


temphumidity工作正常。我无法添加降水。沉淀值在rain3h对象中,当我尝试将其推入数组时,出现控制台错误,提示:


  SyntaxError:标识符在数字文字后立即开始


如何解决这个问题?

最佳答案

3h不是有效的符号,它是数字文字,后跟“ h”;解析器进入繁荣时期。

您需要item.rain['3h']代替。

09-25 17:14