簡體   English   中英

函數為什么返回這些值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM