循环数组和计数

时间:2017-03-23 12:44:26

标签: javascript jquery arrays each

一直在努力计算这个数组。我以前能够做到这一点,但我不认为我完全理解如何为函数的参数分配其数据。

我通过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;
&#13;
&#13;

JSON Data File

1 个答案:

答案 0 :(得分:0)

修改 由于费率是一个对象而不是一个数组,你可以这样做:Object.keys(data.rates).length

Object.keys(...)将为您提供一个包含对象中所有键的数组。

<强>原始

如果您想知道该文件中的费率数量:data.rates.length将为您提供数据中返回的费率Array的长度。 无需计算