javascript-objects - 如何为特定事件提取二乘二表
问题描述
function tableFor(event, journal) {
let table = [0, 0, 0, 0];
for (let i = 0; i < journal.length; i++) {
let entry = journal[i], index = 0;
if (entry.events.includes(event)) index += 1;
if (entry.squirrel) index += 2;
table[index] += 1;
}
return table;
}
console.log(tableFor("pizza", JOURNAL));
我正在阅读 eloquent javascript 第三版,我发现很难理解这段代码,尤其是 if 条件。我的问题是为什么在entry.events.includes(event)
, 索引应该增加 1 而 inentry.squirrel
应该增加 2?另外,如果for循环中的两个if都为真,table[index] += 1
是否会增加?
解决方案
有4个状态需要考虑:
如果日志中的事件不包含比萨饼并且不是松鼠,则在索引 0 处递增表
如果日志中的事件包含 'pizza' 但不是 squirrel 表在索引 1 处递增
- 如果事件不包含 'pizza' 但 squirrel 为真,则表将在索引 2 处递增
- 如果BOTH事件包含“pizza”且 squirrel 为真,则表将在索引 3 处递增
这将遍历 JOURNAL 文件中的 JSON 对象。对于每个“事件”,将选择这 4 种状态中的一种,并且表变量将以上述方式受到影响。
推荐阅读
- javascript - JS 函数记录答案但返回“未定义”
- .net - 当一个类是线程安全且无锁的时,使用 ReaderWriterLock 检测处置是否有意义?
- c# - 错误无法从“out string”转换为“out int”
- linux - 安装 git 时,是什么导致 git interactive 不存在?
- google-cloud-platform - 谷歌云功能可以监听多个事件触发器吗?
- c++ - 将 RFC5114 中定义的 1024bit P 和 G 值加载到 boost uint1024
- mongodb - MongoDB保留满足条件的路径
- laravel - 'Unexpected token <' 包装 .vue 文件时
new to vue here and I am creating an area in the code for all my vue components to be rendered through a
blade.php
file (sfc). I installed the cli usingvue create projectN
- mongodb - MongoDB Atlas Golang mgo package "No reachable servers" error
- python - 如何将一个类对象的 id 传递给 django views.py 中的另一个类对象