检查对象中的每个布尔值

时间:2018-09-17 11:34:34

标签: javascript object boolean

我有一个称为计时器的对象。在计时器中,我还有两个其他对象,active和roomTime。

使用timers.active返回房间名称和布尔值,如下所示:

{room1: true, room2: true, room3: false}

使用timers.roomTime返回一个数字,如下所示:

{room1: 0, room2: 8, room3: 65}

我的问题是:我该如何创建一个函数,以便在使用时检查每个timers.active中的true,以及true是否对timers.roomTime中的数字进行++标记? ?

对于上下文,我想使用myFunction()并将其添加到room1和room2中,因为它们都是正确的。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

在这里(编辑:注意到您想为此使用myFunction。嗯,您应该根据此代码自行弄清楚):

// setup
timers = {};
timers.active = {room1: true, room2: true, room3: false};
timers.roomTime = {room1: 0, room2: 8, room3: 65};

// filter for active rooms
const activeRooms = Object.keys(timers.roomTime).filter((key) => timers.active[key]);

// mutate roomTime based on active rooms
activeRooms.forEach((roomId) => timers.roomTime[roomId]++);