首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >js对象中的计数值

js对象中的计数值
EN

Stack Overflow用户
提问于 2019-03-07 01:55:10
回答 5查看 1.2K关注 0票数 0

我有一个目标,就是谁要来参加这个活动

代码语言:javascript
复制
{ "Ann": true, "Billy": false, "Cat": false, "David": true }

我如何统计出席人数?

获取总人数的object.values.length

EN

回答 5

Stack Overflow用户

发布于 2019-03-07 01:57:07

您可以使用和

这里的想法是

  • 首先从object中获取所有值。
  • 使用reduce求和值。

代码语言:javascript
复制
let obj = { "Ann": true, "Billy": false, "Cat": false, "David": true }

let count = Object.values(obj).reduce((op,inp) => op + inp , 0)

console.log(count)

票数 1
EN

Stack Overflow用户

发布于 2019-03-07 01:57:49

object.values.length获取总人数

Filter out false values:

代码语言:javascript
复制
const obj = {"Ann": true, "Billy": false, "Cat": false,"David": true};
console.log(
  Object.values(obj).filter(Boolean).length
);

如果你想得到出席的人的名字,你可以这样做:

代码语言:javascript
复制
const obj = {"Ann": true, "Billy": false, "Cat": false,"David": true};

const attendees = Object.entries(obj)
  .filter(entry => entry[1])
  .map(entry => entry[0]);

console.log(attendees);
console.log(attendees.length);

票数 1
EN

Stack Overflow用户

发布于 2019-03-07 01:58:04

在现代环境中,可以对Object.values返回的数组使用for-of循环

代码语言:javascript
复制
let sum = 0;
for (const flag of Object.values(yourObject)) {
    if (flag) {
        ++sum;
    }
}

代码语言:javascript
复制
const yourObject = { "Ann": true, "Billy": false, "Cat": false, "David": true };
let sum = 0;
for (const flag of Object.values(yourObject)) {
    if (flag) {
        ++sum;
    }
}
console.log(sum);

或者使用reduce

代码语言:javascript
复制
const sum = Object.values(yourObject).reduce((sum, flag) => sum + (flag ? 1 : 0), 0);

代码语言:javascript
复制
const yourObject = { "Ann": true, "Billy": false, "Cat": false, "David": true };
const sum = Object.values(yourObject).reduce((sum, flag) => sum + (flag ? 1 : 0), 0);
console.log(sum);

在较旧的环境中,您可以使用for-in

代码语言:javascript
复制
var sum = 0;
for (var key in yourObject) {
    if (yourObject[key]) {
        ++sum;
    }
}

代码语言:javascript
复制
var yourObject = { "Ann": true, "Billy": false, "Cat": false, "David": true };
var sum = 0;
for (var key in yourObject) {
    if (yourObject[key]) {
        ++sum;
    }
}
console.log(sum);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55029408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档