如何在javascript中检查数组中是否存在值?

时间:2014-01-15 09:39:15

标签: javascript

我在javascript中有以下内容:

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

 if (localStorage.themeColor) {

如何修改它不仅可以检查是否设置了localStorage.themeColor 检查它是否是数组中的两个值之一?

6 个答案:

答案 0 :(得分:1)

您可以将indexOf与现有的themeColor检查结合使用:

if(localStorage.themeColor && colors.indexOf(localStorage.themeColor) > -1) {
    // Do stuff
}

答案 1 :(得分:1)

您可以这样说:

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

答案 2 :(得分:0)

    for(var i=0;i<colors.length;i++)
{
if(localStorage.themeColor==colors[i])
{
alert(colors[i]);
}
else{
alert("colors not set");
}

答案 3 :(得分:0)

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

如果传递的参数在颜色中不存在

,则indexOf返回-1

答案 4 :(得分:0)

你可以像这样解决它

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

if (localStorage.themeColor && colors.indexOf(localStorage.themeColor) > -1) {
    // Your Code...
}

我在localStorage.themeColor == lightlocalStorage.themeColor is undefined

的情况下对其进行了测试

答案 5 :(得分:-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