变量组合在一行indexOf方法(Eloquent Javascript)

时间:2015-06-10 11:11:32

标签: javascript indexof

我对Eloquent Javascript

中的以下功能感到困惑
function hasEvent(event, entry) {
  return entry.events.indexOf(event) != -1;
}

entry.events.indexOf(event)是什么意思?

3 个答案:

答案 0 :(得分:2)

entry是一个具有events属性的对象(可能是一个数组)。 events的方法为indexOf。然后,检查eventevents的索引,并与-1进行比较。

它不是组合变量,只是访问对象属性。

答案 1 :(得分:1)

evententry是变量,eventsentry变量引用的对象的属性。

Javascript中的数组和字符串提供indexOf方法,该方法搜索引用该值的数组或字符串并返回其索引。

例如:

"one two three".indexOf("two"); // 4

[21, 15, 99].indexOf(99); // 2

答案 2 :(得分:1)

indexOf()是数组的标准方法。引用Mozilla

  

hasEvent()方法返回可在数组中找到给定元素的第一个索引,如果不存在则返回-1。

因此event函数只是检查entry.events数组中是否存在indexOf()的值。

N.B。 indexOf()也是JavaScript String对象的标准方法。再次引用Mozilla

  

typeof entry.events === 'string'方法返回第一次出现指定值的调用String对象中的索引,从fromIndex [可选的第二个参数]开始搜索。如果找不到值,则返回-1。

如果hasEvent()返回true,则event函数会检查entry.events字符串中的{{1}}值是否存在。