我需要生成一個總數爲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