一直在努力计算这个数组。我以前能够做到这一点,但我不认为我完全理解如何为函数的参数分配其数据。
我通过AJAX从JSON数据引入一个数组,然后使用.each
循环遍历数据并对其进行计数。但是在使用index参数时我似乎无法计算它。它只是给我实际的对象而不计算有多少对象。
我希望有人能帮助我理解为什么我得到的是对象,而不是数组中对象的数量。我现在拥有的只是我最后的尝试,我知道这是错误的。
我正在计算有多少"结果"数组中有(来自JSON文件)。
我添加了代码片段并附加了JSON文件的链接。我还在问题区域标记了 问题区域
代码 -
$.getJSON('http://api.fixer.io/latest?base=ZAR', {
action: "query",
list: "search",
format: "json",
}
, function (data) {
var baseCurr = data.base;
var baseDate = data.date;
$('#curr-cont').append('<div class="base row1" id="row1"><div class="base flag" id="flag"><i class="famfamfam-flag-za"></i></div><div class="base country-name"><p class="c-name" id="count-name">' + baseCurr + '</p></div><div class="base currency"><p class="c-amount" id="curr">' + baseDate + '</p></div></div>');
//***Problem Area***
var rates = [data];
$.each(rates[0], function (i, obj) {
console.log(obj);
});
$.each(data.rates, function (i, item) {
var amount = [item];
var name = [i];
var maxLength = 4;
var string = amount.toString();
string = string.substr(0, maxLength);
// amount = amount.substr(0, maxLength);
$('#curr-cont').append('<div class="row1" id="row1"><div class="flag" id="flag"><i class="famfamfam-flag-' + name + '"></i></div><div class="country-name"><p class="c-name" id="count-name">' + name + '</p></div><div class="currency"><p class="c-amount" id="curr">' + string + '</p></div></div>');
// if(i > 0){
// $('#list1').append('<li>' + name + '</li>');
// }
// else{
// $('#list2').append('<li>' + name + '</li>');
// }
});
});
&#13;
答案 0 :(得分:0)
修改强>
由于费率是一个对象而不是一个数组,你可以这样做:Object.keys(data.rates).length
。
Object.keys(...)
将为您提供一个包含对象中所有键的数组。
<强>原始强>
如果您想知道该文件中的费率数量:data.rates.length
将为您提供数据中返回的费率Array
的长度。
无需计算