如何在javascript中查找特定对象并将其放入数组
我的脚本中有这个结果如何在javascript中查找特定对象并将其放入数组,javascript,c#,jquery,html,Javascript,C#,Jquery,Html,我的脚本中有这个结果 '[{"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
'[{"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
。我该怎么做呢。您可以使用此方法
var ncaList = jsonList.filter(function(obj){ return obj.region == "NCA"; });
很简单。迭代
jList
数组,查看region
属性是否与您的条件匹配,然后将该项附加到筛选后的数组中
var filtered = [];
jList.forEach(function(item) {
if(item.region == 'NCA') {
filtered.push(item);
}
});
只需迭代一下:
var filteredDepprts = [];
jsList.forEach(function(element){
if(element.region == 'NCA'){
filteredList.push(element.depprt); //or element if you want to push the full object
}
});
stringify方法将JavaScript值转换为字符串 如果要将JSON字符串转换为JavaScript值,请使用JSON.parse 在@Html.Raw周围使用单引号创建字符串,而不是JavaScript值。筛选器方法不适用于字符串 最终,您可以使用Array.prototype.filter筛选出数组中符合条件的每个元素 试试地图:
var obj= [];
for (i in jsonList) {
if (jsonList[i].region == "NCA") { obj.push(jsonList[i])};
}
很好,它可以工作。现在我如何才能同时获得
depprt
,并避免重复。
var obj= [];
for (i in jsonList) {
if (jsonList[i].region == "NCA") { obj.push(jsonList[i])};
}