首页 > 解决方案 > response dot length doesn't happen to be working

问题描述

When I do

 console.log(response.data.rates)

I am getting response like this

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

Now, I want to run for loop till the .length of element.

but before that I did console.log(response.data.rates.length) which is coming out to be undefined.

[Question:] What could I be doing wrong here?

标签: javascript

解决方案


对象没有长度。您需要的是数组的长度。用于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]);
});


推荐阅读