响应点长度不起作用

时间:2018-09-26 18:23:19

标签: javascript

当我这样做

 console.log(response.data.rates)

我正在收到这样的回复

{AUD: 1.3804, BGN: 1.6664, BRL: 4.0884, CAD: 1.2962, CHF: 0.9686, …}

现在,我要运行for loop直到元素​​.length

但在此之前,我做了console.log(response.data.rates.length),结果未定义

[问题:] 我在这里可能做错了什么?

3 个答案:

答案 0 :(得分:1)

一个对象没有长度。您需要的是数组的长度。使用Object.keys(response.data.rates).length来获取对象键的长度。

这里是一个例子:

var response = {
   data: {
      rates: {AUD: 1.3804, BGN: 1.6664, BRL: 4.0884, CAD: 1.2962, CHF: 0.9686}
   }
};

var keys = Object.keys(response.data.rates);
for (var i = 0; i < keys.length; i++) {
   console.log(keys[i], response.data.rates[keys[i]]);
}

// or without length, but with a forEach loop:
console.log('---');

Object.keys(response.data.rates).forEach(key => {
   console.log(key, response.data.rates[key]);
});

答案 1 :(得分:1)

它是一个对象,javascript中length的{​​{1}}属性

您可以使用arrays遍历对象[link]

答案 2 :(得分:0)

对象没有length属性

使用

Object.keys()