我有以下代码:var a = rfc();
rfc()
返回以下格式{usd:1,gbp:0.59,bdt:77.5}
预期的数组。我需要数数。我没有使用a.length
做到这一点。它总是返回0.我使用下面的函数检查了a的内容,返回如下:
检查数组内容的函数:
Object.keys(coordinates).forEach(function(key) {
console.log(key, coordinates[key]);
});
控制台输出:
usd 1
bdt 77.5
gbp 0.59
undefined
为什么我无法使用array.length
获取数组长度?如何以最少的代码数量计算此数组的元素数?
由于
答案 0 :(得分:1)
尝试:
Object.keys(coordinates).length
原始对象是一个对象,而不是一个数组。但是,在提取对象的键的数组时(就像在Object.keys(coordinates)
中那样),你有一个数组,你可以采用它的长度。
> a = {usd:1,gbp:0.59,bdt:77.5};
[object Object] {
bdt: 77.5,
gbp: 0.59,
usd: 1
}
> Object.keys(a)
["usd", "gbp", "bdt"]
> Object.keys(a).length
3
答案 1 :(得分:1)
您的JavaScript:
{usd:1,gbp:0.59,bdt:77.5}
表示对象,而不是数组。所以它没有长度属性。要快速计算对象中的属性数,可以执行以下操作:
var a = {usd:1,gbp:0.59,bdt:77.5}
var b = Object.keys(a).length
b现在将设置为3。