Javascript jQuery按键和值对JSON进行计数(这个函数可以工作吗?)
按照上述功能的思路去想一些事情是否可行?如果是这样的话,当前的函数/调用有什么问题,我可以做些什么来让它工作Javascript jQuery按键和值对JSON进行计数(这个函数可以工作吗?),javascript,jquery,json,Javascript,Jquery,Json,按照上述功能的思路去想一些事情是否可行?如果是这样的话,当前的函数/调用有什么问题,我可以做些什么来让它工作 我知道在不包装函数的情况下,我可以做得很好,但我希望这个概念可以重用。应该可以,但是您也可以: function countJSONObjByKeyValue(obj, key, value) { var countJSONShows = 0; $.each(obj, function(i, item) { if(obj[i].key == val
我知道在不包装函数的情况下,我可以做得很好,但我希望这个概念可以重用。应该可以,但是您也可以:
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");
还要注意,obj不能作为字符串传递,我不知道dashboardJSON.widgets是什么样子的,所以我不能100%地告诉您问题出在哪里 但是,一个明显的问题是引用键的方式。处理JSON时,可以通过以下两种方式引用密钥:
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");
您需要做的是,由于您要将密钥的字符串值作为参数传入,因此需要使用第二种方法:
var o = {"foo":"bar"};
o.foo;
o["foo"];
你在那里传递的是一个字符串而不是一个对象。你知道如何将它作为对象传递吗?因为即使尝试不带引号的“dashboardJSON.widgets”,当我知道当前至少有1个时,也会得到0计数。您测试过吗?我认为obj[i].key不起作用,因为key是stringtry obj[i][key]而不是obj[i]。key@spacevillian,你刚刚搞定了。。非常感谢。
obj[i][key]