获取具有特定值的键计数的最简单方法
Simplest way to get count of keys with a particular value
给定一个javascript对象,获取具有特定值的键数的最简单方法是什么
例如,我有以下javascript对象(其中键表示测试脚本id,值表示脚本执行的结果):
var result = {1: "PASS", 2: "PASS", 3: "FAIL", 4: "PASS", 5: "FAIL"};
我想以最简单的方式获得值为"PASS"(在这种情况下为3)的密钥计数。
您将使用Object.keys和Array.filter:
var result = {1: "PASS", 2: "PASS", 3: "FAIL", 4: "PASS", 5: "FAIL"};
var passCount = Object.keys(result).filter(function(key){
return ( result[key] === 'PASS' );
}).length;
function countKeys(data, expected) {
return Object.keys(data).map(key => data[key] == expected).reduce((p, c) => p + c, 0);
}
取对象的键,比较每个键并转换为布尔值,然后将布尔值相加(强制它们为0表示false,1表示true,并求和)。
使用ES5,将其分解,您可以:
function countKeys(data, expected) {
var keys = Object.keys(data);
var checked = keys.map(function (key) {
return data[key] == expected;
});
return checked.reduce(function (prev, cur) {
return prev + cur;
}, 0);
}
或者使用更旧的循环:
function countKeys(data, expected) {
var keys = Object.keys(data);
var count = 0;
for (var i = 0; i < keys.length; ++i) {
var value = data[key];
if (value == expected) {
++count;
} else {
// do nothing or increment some failed counter
}
}
return count;
}
只需过滤并获取长度。
var result = { 1: "PASS", 2: "PASS", 3: "FAIL", 4: "PASS", 5: "FAIL" };
function getCount(s, o) {
return Object.keys(result).filter(function (k) { return o[k] === s; }).length;
}
document.write(getCount('PASS', result));
var result = {1: "PASS", 2: "PASS", 3: "FAIL", 4: "PASS", 5: "FAIL"};
undefined
function getCountByValue(obj,value){
return Object.keys(result).filter(function(key){
return result[key] === value
}).length
}
//as your wish
getCountByValue(result,'FAIL')
getCountByValue(result,'PASS')
相关文章:
- JQuery:向多个匹配结果添加换行符的最简单方法
- 访问对象的最简单方法'的单独财产
- 什么'这是使用jQuery将一些文本锚定到外部链接的最简单方法
- 实施会员系统的最简单方法是什么
- 出错时更改文本字段边框的最简单方法
- JavaScript:获取第一个月前 6 个月的日期的最简单方法
- 在CreateJS中加载视频的最简单方法
- 使用JavaScript过滤从网页复制的文本的最简单方法
- 创建在Javascript和PHP之间使用的唯一代码的最简单方法
- 使用JS找出字符串中字符重复的最简单方法是什么
- 使选择框在URL中使用变量重新加载页面的最简单方法
- 在原始对象的基础上创建新对象的最简单方法,但没有几个字段
- 在HTML中记住用户区域设置选择的最简单方法
- 在Raphael JS中创建脉动(循环)背景的最简单方法
- 从jquery下载具有现有路径的文件的最简单方法
- 在 Javascript 中将对象连接为空格分隔字符串的最简单方法是什么?
- 什么'这是重定向不受支持的浏览器的最简单方法
- 管理形式状态的最简单方法是什么
- 创建响应图像的最简单方法是什么
- 在 JavaScript 中,将文本插入字符串的最简单方法是什么?