我的脚本中有这个结果
'[{"region":"NCA","depprt":"Havana, Cuba"},{"region":"NCA","depprt":"Havana, Cuba"},{"region":"NCA","depprt":"Montego Bay, Jamaica"},{"region":"NCA","depprt":"Montego Bay, Jamaica"}]'
这是获得它的代码。
var jsonList = '@Html.Raw(Json.Encode(ViewBag.chk))'
var jsList = JSON.stringify(jsonList);
jsList
我得到了上述结果。现在我想得到depprt
region
等于NCA
的所有[
{"id":"filters","name":"filter_supptype_cp_01"}
]
。我该怎么做。
答案 0 :(得分:2)
您可以使用.filter()方法。
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-xxxxxx-1 ']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script');
ga.type = 'text/javascript';
ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);
})();
答案 1 :(得分:1)
很简单。迭代jList
数组并查看region
属性是否符合您的条件,然后将该项附加到过滤后的数组。
var filtered = [];
jList.forEach(function(item) {
if(item.region == 'NCA') {
filtered.push(item);
}
});
答案 2 :(得分:1)
只是迭代它:
var filteredDepprts = [];
jsList.forEach(function(element){
if(element.region == 'NCA'){
filteredList.push(element.depprt); //or element if you want to push the full object
}
});
答案 3 :(得分:1)
JSON.stringify方法将JavaScript值转换为字符串。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
如果要将JSON字符串转换为JavaScript值,请使用JSON.parse
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse
var jsonList = '@Html.Raw(Json.Encode(ViewBag.chk))'
var jsList = JSON.parse(jsonList);
在@ Html.Raw周围使用单引号,创建一个字符串而不是JavaScript值。过滤器方法不适用于字符串
最终你可以使用Array.prototype.filter过滤掉符合条件的数组中的每个元素。
https://developer.mozilla.org/nl/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
答案 4 :(得分:1)
尝试地图:
var obj= [];
for (i in jsonList) {
if (jsonList[i].region == "NCA") { obj.push(jsonList[i])};
}