var JOURNAL = [
{"events":["carrot","exercise","weekend"],"squirrel":false},
{"events":["bread","pudding","brushed teeth","weekend","touched tree"],"squirrel":false}]
function hasEvent(event, entry) {
var x = entry.events.indexOf(event)
console.log(x)
//-1
return x != -1;
}
hasEvent('pizza', JOURNAL[0])
例如:JOURNAL [0]中没有'pizza',因此它返回-1,导致x返回false。“为什么indexOf在找不到元素时返回-1”
我明白,如果它没有找到事件,它会返回-1!
我的问题是为什么它返回-1?它背后有什么理由吗?
很多谢谢
编辑:问这样的问题不好吗?这就是为什么我被低估了?抱歉!
如果x!= -1则返回true,否则返回false。 –
检查文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf我猜这是为什么没有细节原因。但是,当找不到东西时返回-1是相当常见的 – Patchee
因为规格说明如此 - http://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.14 – Abhitalks