[英]Why does the function return these values?
此函数对文件中的事件进行计数并将其存储在数组中。
function hasEvent(event, entry) {
return entry.events.indexOf(event) != -1;
}
function tableFor(event, journal) {
var table = [0, 0, 0, 0];
for (var i = 0; i < journal.length; i++) {
var entry = journal[i], index = 0;
if (hasEvent(event, entry)) index += 1; //9
if (entry.squirrel) index += 2; //4
table[index] += 1;
}
return table;
}
console.log(tableFor("pizza", JOURNAL));
为什么此函数返回//76, 9, 4, 1
? 数字应为//74, 10, 5, 1
。
我认为函数从零开始计数,但我不这么认为。
最好的方法是这种实现...
事件= 90,
披萨= 10,
松鼠:真= 5,
披萨和松鼠:true = 1,因此我们需要在执行中休息-2
90-10-5-1 = 74
function hasEvent(event, entry) { return entry.events.indexOf(event) != -1; } function tableFor(event, journal) { var table = [0, 0, 0, 0]; for (var i = 0; i < journal.length; i++) { var entry = journal[i]; if(hasEvent(event, entry) && entry.squirrel) table[3] += 1; //1 if(entry.squirrel) table[2] += 1; //5 if(hasEvent(event, entry)) table[1] += 1; //10 if(!(hasEvent(event, entry) || entry.squirrel)) table[0] += 1; //76 // xor if(hasEvent(event, entry) && entry.squirrel) table[0] -= 2; //74 } return table; } console.log("Expected: 74,10,5,1") console.log("Calculated: " + tableFor("pizza", JOURNAL));
<script src="http://eloquentjavascript.net/code/jacques_journal.js"></script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.