我有一个目标,就是谁要来参加这个活动
{ "Ann": true, "Billy": false, "Cat": false, "David": true }我如何统计出席人数?
获取总人数的object.values.length
发布于 2019-03-07 01:57:07
您可以使用和
这里的想法是
let obj = { "Ann": true, "Billy": false, "Cat": false, "David": true }
let count = Object.values(obj).reduce((op,inp) => op + inp , 0)
console.log(count)
发布于 2019-03-07 01:57:49
object.values.length获取总人数
Filter out false values:
const obj = {"Ann": true, "Billy": false, "Cat": false,"David": true};
console.log(
Object.values(obj).filter(Boolean).length
);
如果你想得到出席的人的名字,你可以这样做:
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);
发布于 2019-03-07 01:58:04
在现代环境中,可以对Object.values返回的数组使用for-of循环
let sum = 0;
for (const flag of Object.values(yourObject)) {
if (flag) {
++sum;
}
}
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:
const sum = Object.values(yourObject).reduce((sum, flag) => sum + (flag ? 1 : 0), 0);
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
var sum = 0;
for (var key in yourObject) {
if (yourObject[key]) {
++sum;
}
}
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);
https://stackoverflow.com/questions/55029408
复制相似问题