2014-12-05 35 views
-1

我剛剛開始用JavaScript編程,不久前。但是我仍然對它處理數組的方式感到困惑。 問題是我有一個數組,其中有一些內容爲undefined。我想檢查那些未定義的值並將其轉義。我該怎麼做。下面的代碼不起作用,我還沒有找到解決這個問題的方法。檢查未定義的不工作

if(myarray[0]!=='undefined') 

if(myarray[0])!='undefined') // I have also tried 


if(myarray[0]).search('undefined')==(-1)) // and also this 

但是這些選項都不起作用。我可以在調試時看到數組中的值爲'未定義',但條件從未滿足。再一次,我的目標是在未定義的時候做些事情。請問我該怎麼做。我發現了一個類似的問題,但Test if something is not undefined in JavaScript它不工作

+0

的可能重複[測試,如果事情沒有在JavaScript中未定義](http://stackoverflow.com/questions/7041123/test-if-something-is-not-undefined-in -javascript) – JJJ 2014-12-05 19:39:40

回答

0

你應該看看如下:if(typeof(myarray[0]) != 'undefined')

1

你是比較undefined'undefined',這是一個字符串,因此它的與衆不同。你需要比較像這樣:

myarray=[undefined]; 
if(myarray[0]!==undefined){ 
    console.log(4) 
} 
+0

這是不安全的,因爲undefined是一個可寫的全局屬性。 – 2014-12-05 19:40:25

+0

好,來自http://stackoverflow.com/questions/7041123/test-if-something-is-not-undefined-in-javascript的最高票數答案也是如此。還有,很高興知道 – juvian 2014-12-05 19:43:22

+0

[自JavaScript 1.8.5以來](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined),對於那些有興趣的人。 – chazsolo 2014-12-05 19:55:18

1

你的myarray[0]值比較的undefined一個字符串值。

你需要的是這樣的:

if (typeof(myarray[0]) !== 'undefined') 

希望這有助於!

1

juvian提供了一個很好的答案。您需要使用undefined而不是'undefined',因爲您將數組與字符串進行比較。

在我目前的項目中,我使用下劃線來檢查未定義。這非常簡單直接。

var array = []; 
if (_.isUndefined(array)); 

http://underscorejs.org/#isUndefined