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

时间:2016-12-18 08:50:12

标签: 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]

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

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

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

1 个答案:

答案 0 :(得分:5)

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