2014-01-15 4 views
1

У меня есть следующие в JavaScript:Как проверить, присутствует ли значение в массиве в javascript?

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

if (localStorage.themeColor) { 

Как я могу изменить это, чтобы не только проверить, что localStorage.themeColor установлен, но также , чтобы проверить, что это один из двух значений в массиве?

ответ

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

You может сказать что-то вроде:

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

Смежные вопросы