如何找到特定的对象并将它们放在javascript中的数组中

时间:2016-04-01 11:38:07

标签: 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.chk))'
        var jsList = JSON.stringify(jsonList);

jsList我得到了上述结果。现在我想得到depprt region等于NCA的所有[ {"id":"filters","name":"filter_supptype_cp_01"} ] 。我该怎么做。

5 个答案:

答案 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])};
}

https://jsfiddle.net/pd6hvn78/