![](/img/trans.png)
[英]Is bracket notation slower than period notation for accessing Object properties?
[英]Accessing Properties in object using bracket notation
我正在通过javascript使用ajax调用并返回json。
我使用括号表示法访问数据,因为对象名称中包含空格,因此无法使用点表示法。
这是我的ajax调用的成功功能(由于API密钥而没有放入整个ajax调用)。
success: function(data){
console.log(data);
console.log(data['Time Series (1min)']);
},
我想要“时间序列(1分钟)”对象中一长串属性中的最后一个属性。 我无法通过键/属性名称来称呼它,因为属性每隔分钟就会更改一次(数据是一分钟一分钟的)。 到目前为止,我还没有找到任何可以帮助我上网的信息。 我已经尝试过.last(),但是点符号和方括号似乎并不有趣。 有任何想法吗?
获得数据后:
const series = data['Time Series (1min)'];
只需获取所有密钥,即可获得时间戳最高的密钥:
const last = Object.keys(series).reduce((a, b) => a > b ? a : b);
现在我们有了最高的钥匙,这很容易:
console.log(series[last]);
不能保证对象键顺序的所有必要操作,因此您可以切换到使用数组或Map。
我假设您只是想获取对象的最后一个属性的值。 (基于该主题,对对象属性进行了排序)
那么简单些:
data[Object.keys(data).pop()]
//编辑:
首先,您要获取“时间序列”属性(每分钟更改一次),所以也许您需要这样的东西:
data[Object.keys(data).find(key => key.match(/Time Series \(\d+min\)/))]
这将获得您方案中时区属性的值(带有日期的对象)。 而且-正如我所看到的-您收到的数据是按日期时间排序的,您可以通过运行我在未经编辑的帖子中编写的代码来获取您感兴趣的对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.