我有一个json,因为jason数据中存在或不存在密钥。现在我想得到jquery中密钥存在的总数。
JSON:
jasonData = [{"test":"sa3"},{"test":"4s"},{"acf":"1s"},{"test":"6s"}];
我们如何在jquery中这样做,请帮助我
答案 0 :(得分:6)
您可以使用filter:
var jasonData = [{"test":"sa3"},{"test":"4s"},{"acf":"1s"},{"test":"6s"}];
var count = jasonData.filter(function(element) {
return element.test;
}).length;
document.write(count);
或者,为了进一步跨浏览器兼容性,jQuery提供了类似的grep函数:
var jasonData = [{"test":"sa3"},{"test":"4s"},{"acf":"1s"},{"test":"6s"}];
var count = $.grep(jasonData, function(element) {
return element.test;
}).length;
document.write(count);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
答案 1 :(得分:1)
不需要jQuery
这将显示一个对象,显示每个键及其出现次数
var jasonData = [{"test":"sa3"},{"test":"4s"},{"acf":"1s"},{"test":"6s"}];
var keyCounts = {};
for (var i = 0; i < jasonData.length; i++) {
var key = Object.keys(jasonData[i])[0];
if (typeof(keyCounts[key]) == 'undefined') {
keyCounts[key] = 1;
} else {
keyCounts[key] += 1;
}
}
console.log(keyCounts);
&#13;
答案 2 :(得分:0)
这可以在核心JS中完成......
这是正在运行的代码。
var jasonData = [{"test":"sa3"},{"test":"4s"},{"acf":"1s"},{"test":"6s"}];
var sum=0;
jasonData.forEach(function(value,i){
if(value.test){
sum++;
}
});
console.log(sum);
答案 3 :(得分:0)
以非常简单的方式做到这一点::
var tempArr = [{"test":"sa3"},{"test":"4s"},{"acf":"1s"},{"test":"6s"}];
var tempObj;
for(var i=0;i<tempArr.length;i++){
tempObj = tempArr[i];
for(key in tempObj){
alert("key : "+key +"value : "+tempObj[key]);
}
}
这样你就可以在任何json数组中获得任何键和值。现在根据您的要求调整此代码,例如增加或减少计数或您想要做的任何事情。
希望你有办法!!!