如何在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])};
}