我想在JavaScript对象中存储类似TaskPaper的任务。假设我有一个类似的任务
- Post to StackOverflow @priority(2) @due(2016-05-03) @flagged
这将变成
{"name":"Post to StackOverflow", "priority": 2, "due":"2016-05-03", "flagged":"value"}
已标记并不需要值,我所能想到的就是使用
true
或null
我想稍后使用
if key in object
过滤任务,并且具有true/false值不适用于我的工作流程。SO社区将推荐什么作为最佳实践。
最佳答案
如果您执行类似if (myobj.flagged)
的操作,那么如果您的flagged
的值为true
,则测试通过。如果flagged
属性不存在,那么您得到的undefined
是虚假的。因此,它可以与flagged:true
,flagged:false
甚至没有flagged
属性一起使用。因此,请使用true
,并在该属性不存在的情况下完全忽略该属性(因此for...in
在这种情况下将起作用)。