我需要生成一个JSON对象总数的数字,例如:" 6 类型_A国家/地区的程序"。 我有一个JSON,并已经过它来过滤类型和国家。
JSON中的每个对象都包含一个"国家"数组(一些有很多国家,有些只有一个):
"countries":["China","Singapore","U.S.A.","United Kingdom"]
JS:
var varCountry = $( "body" ).data( "country");
var programsJSON = (function () {
var programsJSON = null;
var a_Programs;
$.ajax({
'async': false,
'global': false,
'url': '/ProgramListing',
'dataType': "json",
'success': function (data) {
programsJSON = data;
}
});
var find_A = programsJSON.Programs.filter(function(val, index, array) {
return val.program_type === 'this is A type' && val.countries[0] === varCountry;
});
a_Programs = find_A.length;
$(".program-count.a_Programs").text(a_Programs);
return programsJSON;
})();
目前它似乎工作,它通过JSON查看,它过滤所有匹配a_Programs&&和根据传递的var匹配列表中的国家/地区。然后在下面计算总长度并创建一个数字作为var。这个脚本有效,但不准确 - 我认为只有当国家===到国家首先列出的国家时才会计算,如果它是第二,第三等,则忽略它,但不确定。
问题似乎在这里:
val.countries[0] === varCountry
它应该如何运作:如果这个国家是"中国"例如,我希望通过JASON查看并找到程序类型&& country数组并返回同时为a_Program&&的JSON对象的总数。在当地。
答案 0 :(得分:1)
如果val.countries
是一个数组,您应该能够使用类似的东西:
return val.program_type === 'this is A type' && val.countries.indexOf(varCountry) > 0;