我在JavaScript中有以下幾點:如何檢查一個值是否存在於JavaScript中的數組中?
var colors = ["dark", "light"];
if (localStorage.themeColor) {
如何修改這不僅是爲了檢查localStorage.themeColor設置也 檢查它在數組中的兩個值中的一個?
我在JavaScript中有以下幾點:如何檢查一個值是否存在於JavaScript中的數組中?
var colors = ["dark", "light"];
if (localStorage.themeColor) {
如何修改這不僅是爲了檢查localStorage.themeColor設置也 檢查它在數組中的兩個值中的一個?
您可以結合使用indexOf與您現有的支票themeColor相關:
if(localStorage.themeColor && colors.indexOf(localStorage.themeColor) > -1) {
// Do stuff
}
for(var i=0;i<colors.length;i++)
{
if(localStorage.themeColor==colors[i])
{
alert(colors[i]);
}
else{
alert("colors not set");
}
colors.indexOf("dark") !== -1
的indexOf返回-1如果傳遞的參數不存在的顏色
你可以這樣說:
var colors = ["dark", "light"];
if (localStorage.themeColor && colors.indexOf(localStorage.themeColor) != -1) {
對於的indexOf看到:
你應該建立一個原型這樣
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
對不起,我不得不低估這個,因爲你基本上正在重寫一個現有的函數。 – CodingIntrigue
你的意思是包含的現有函數()? – Ajey
不,indexOf(鏈接到這裏的多個答案)完全是這樣 – CodingIntrigue
你可以解決它像這樣
var colors = ["dark", "light"];
if (localStorage.themeColor && colors.indexOf(localStorage.themeColor) > -1) {
// Your Code...
}
我在
localStorage.themeColor == light
的情況下進行了測試
和localStorage.themeColor is undefined
這是行不通的。您的indexOf支票和您遺漏的右括號 – CodingIntrigue
有錯誤謝謝您發現它! –