除了下面提到的行之外,我几乎理解所有这些代码
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
语句的交互方式。
有关详细信息,可以在此页面的中间找到代码
答案 0 :(得分:5)
在JS中,如果您搜索索引的元素不存在,则数组函数indexOf
返回-1。它不会返回0,因为0是有效索引。