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