Javascript - 在这个函数中做什么!= -1

Mar*_*ano -4 javascript

除了下面提到的行之外,我几乎理解所有这些代码

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;
    if (entry.squirrel) index += 2;
    table[index] += 1;
  }
  return table;
}

console.log(tableFor("pizza", JOURNAL));
// ? [76, 9, 4, 1]
Run Code Online (Sandbox Code Playgroud)

JOURNAL是一个数组.此函数循环遍历它以查找是否有任何条目包含pizza的值,以及属性的值是什么squirrel.根据这两个检查的结果,将1添加到4个索引中的一个中table.我想我不理解hasEvent函数的作用,以及它如何与第一个if语句交互.

有关详细信息,可以在此页面的中间找到代码

http://eloquentjavascript.net/04_data.html

Ron*_*don 5

在JS中,indexOf如果您搜索索引的元素不存在,则数组函数返回-1.它不会返回0,因为0是有效索引.