jQuery计数JSON的键和值(这个功能可以工作吗?)

jQuery count JSON by Key and Value (could this function work?)

本文关键字:工作 功能 JSON 计数 键和值 jQuery      更新时间:2023-09-26
function countJSONObjByKeyValue(obj, key, value)
{
    var countJSONShows = 0;
    $.each(obj, function(i, item)
    {
        if(obj[i].key == value){ countJSONShows++; }
    });
    alert(countJSONShows);
}
countJSONObjByKeyValue("dashboardJSON.widgets", "show", "false");

是否有可能认为上面的函数可以工作?如果是这样的话,这个当前函数/调用有什么问题,我可以做的是使它工作?

我知道这样做没有一个函数的包装,我可以做得很好,但我希望这个概念是可重用的

应该可以,但是您也可以这样做:

function countJSONObjByKeyValue(obj, key, value)
{
   var countJSONShows = 0;

   for(x in obj){
        if(obj[i].key == value){ countJSONShows++; }
   }
   window.alert(countJSONShows);
}
countJSONObjByKeyValue(dashboardJSON.widgets, "show", "false");

还要注意,obj不能作为字符串

传递

我不知道dashboardJSON。widgets的样子,所以我不能百分之百地告诉你问题是什么。

然而,一个明显的问题是您引用键的方式。在处理JSON时,可以通过以下两种方式引用键:

var o = {"foo":"bar"};
o.foo;
o["foo"];

您需要做的是,由于您将键的String值作为参数传入,因此您需要使用第二种方式:

obj[i][key]