2014-01-15 95 views

回答

2

您可以結合使用indexOf與您現有的支票themeColor相關:

if(localStorage.themeColor && colors.indexOf(localStorage.themeColor) > -1) { 
    // Do stuff 
} 
0
for(var i=0;i<colors.length;i++) 
{ 
if(localStorage.themeColor==colors[i]) 
{ 
alert(colors[i]); 
} 
else{ 
alert("colors not set"); 
} 
1

colors.indexOf("dark") !== -1

的indexOf返回-1如果傳遞的參數不存在的顏色

2

你可以這樣說:

var colors = ["dark", "light"]; 

if (localStorage.themeColor && colors.indexOf(localStorage.themeColor) != -1) { 

對於的indexOf看到:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf?redirectlocale=en-US&redirectslug=JavaScript%2FReference%2FGlobal_Objects%2FArray%2FindexOf

+0

這是行不通的。您的indexOf支票和您遺漏的右括號 – CodingIntrigue

+0

有錯誤謝謝您發現它! –

-1

你應該建立一個原型這樣

Array.prototype.contains = function(elem) 
    { 
     for (var i in this) 
     { 
      if (this[i] == elem) return true; 
     } 
     return false; 
    } 

在這裏,你的陣列

var colors = ["dark", "light"]; 

最後調用使用colors.contains("dark") //此功能將返回true

+0

對不起,我不得不低估這個,因爲你基本上正在重寫一個現有的函數。 – CodingIntrigue

+0

你的意思是包含的現有函數()? – Ajey

+0

不,indexOf(鏈接到這裏的多個答案)完全是這樣 – CodingIntrigue

0

你可以解決它像這樣

var colors = ["dark", "light"]; 

if (localStorage.themeColor && colors.indexOf(localStorage.themeColor) > -1) { 
    // Your Code... 
} 
我在 localStorage.themeColor == light的情況下進行了測試

localStorage.themeColor is undefined

相關問題