2017-01-02 40 views
-6
var y = [1,2,3]; 
(y.indexOf(1) > -1) ? console.log(true) : ''; 

爲什麼上面的代碼不起作用?我認爲可以在y中檢查1是一個數組嗎?indexOf在javascript中的數組方法

+4

'y.indexOf(1)'將返回'0'如'1'是在數組的第0索引處。要檢查一個元素是否在數組中,使用'array.indexOf(1)!== -1'或'array.includes(1)'來獲取最新的env。 – Tushar

+1

現在你已經「修復」了你的問題中的代碼,你的問題到底是什麼?!? – Keiwan

+1

你的工作是什麼意思?_。什麼是預期產出?請參閱[mcve]和[編輯]問題。 – Tushar

回答

0

indexOf返回數組中值的第一個匹配位置。

1出現在位置0

0 > 1false

您需要測試位置是否大於-1以查看它是否出現在數組中。


因爲寫這個答案,這個問題已被編輯使用-1。問題中的代碼現在可以按照需要工作。

+0

重新說明:'1'位於數組'y'的'0'位置。 – Tushar

0

這是因爲在JS索引從零開始。

所以1是在第0位,2是第一名等

3

indexOf是從零開始的,數組和字符串的所有指標。如果一個項目不在數組中,則返回-1,否則返回該項目的索引。

var y = [1, 2, 3]; 
 
console.log(y.indexOf(1) !== -1);

+0

@Tushar,什麼......?我認爲op對'indexOf'的概念感到困惑。 –