我需要生成一个总数为JSON对象的数字,例如:“ type_A programs in your country”。 我有一个JSON,并得到它来过滤类型和国家。过滤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查找,它会根据传递的变量过滤与匹配列表中的国家/地区匹配的所有类别& &。然后在下面它计算总长度并创建一个数字作为var。这个脚本可行,但并不准确 - 我认为只有在国家===的国家列在其阵列中的第一个国家时才会计算,如果它是第二,第三等,但不能确定。
这个问题似乎是在这里:
val.countries[0] === varCountry
如何它应该工作:如果这个国家是“中国”来说,我想这通过JASON看,找到节目类型& &国数组并返回当地国家/地区的所有JSON对象,这些JSON对象都是a_program & &。
从来没有使用'“异步”:FALSE'!这是一个糟糕的做法,浏览器供应商已经弃用它。您应该看到您的控制台中的警告 – charlietfl