Javascript 我试图在一个if中获得3个条件。但是它';它不工作了

Javascript 我试图在一个if中获得3个条件。但是它';它不工作了,javascript,Javascript,我需要匹配三个条件,以便页面可以显示该过滤器的适当结果。我尝试在三个条件之间添加&&但不起作用。 我在这里并没有透露真正的代码,但我已经在没有原始var名称的情况下展示了它 if(localStorage.getItem("eg1") == 30000 && eg2 == 1 && eg3 == use){}; eg2和eg3只是变量,它们不是本地存储。应该是: if((localStorage.getItem("eg1&qu

我需要匹配三个条件,以便页面可以显示该过滤器的适当结果。我尝试在三个条件之间添加&&但不起作用。 我在这里并没有透露真正的代码,但我已经在没有原始var名称的情况下展示了它

if(localStorage.getItem("eg1") == 30000 &&  eg2 == 1 &&   eg3 == use){};
eg2和eg3只是变量,它们不是本地存储。

应该是:

if((localStorage.getItem("eg1") == 30000) && (eg2 == 1) &&   
(eg3== use)){};
应该是:

if((localStorage.getItem("eg1") == 30000) && (eg2 == 1) &&   
(eg3== use)){};

这里有一个更简洁的方法:

const a=[“eg1”、“eg2”、“eg3”].map(e=>localStorage.getItem(e));
如果(a[0]==30000&&a[1]==1&&a[2]==use){
//
}
还有一种不太活跃但较短的方法:

if([30000,1,use].map((e,i)=>e==localStorage.getItem(“eg”+i++)。includes(false)){
}

这里有一个更简洁的方法:

const a=[“eg1”、“eg2”、“eg3”].map(e=>localStorage.getItem(e));
如果(a[0]==30000&&a[1]==1&&a[2]==use){
//
}
还有一种不太活跃但较短的方法:

if([30000,1,use].map((e,i)=>e==localStorage.getItem(“eg”+i++)。includes(false)){
}

尝试分解问题以便更好地分析:

var e1 = localStorage.getItem("eg1") === 30000;
var e2 = eg2 === 1;
var e3 = eg3 === use;
我使用了triple equal,因为我认为您不需要类型强制

由于您无法显示原始代码,如果您不将结果记录在日志中,很难想象哪些变量可以包含适当程度的确定性


当然,独立查看您的条件有助于您确定猜测的落脚点,以修复看似简单的分支条件。

尝试分解问题,以便更好地分析它:

var e1 = localStorage.getItem("eg1") === 30000;
var e2 = eg2 === 1;
var e3 = eg3 === use;
我使用了triple equal,因为我认为您不需要类型强制

由于您无法显示原始代码,如果您不将结果记录在日志中,很难想象哪些变量可以包含适当程度的确定性


当然,独立查看条件可以帮助您确定猜测的结果,以修复出现的简单分支条件。

localStorage.getItem
以字符串形式返回值


尝试使用
if(localStorage.getItem(“eg1”)=“30000”&&eg2==1&&eg3==use){}

localStorage.getItem
将值作为字符串返回



尝试使用
if(localStorage.getItem(“eg1”)=“30000”&&eg2==1&&eg3==use){}

不应该
eg2==1
ocalStorage.getItem(“eg2”)==1
?我怀疑
eg3
也是如此。请检查
localStorage.getItem(“eg1”)
是否实际返回了一些内容。@VLAZ抱歉,我不了解您的本地存储项及其类型。通常,如果原始使用,它们都将存储为字符串,因此您将对字符串和数字进行比较,即“30000”==30000@BeshambherChaukhwan没有类型检查,3000==“3000”有效。类型检查需要
==
不应该
eg2==1
ocalStorage.getItem(“eg2”)==1
?我怀疑
eg3
也是如此。请检查
localStorage.getItem(“eg1”)
是否实际返回了一些内容。@VLAZ抱歉,我不了解您的本地存储项及其类型。通常,如果原始使用,它们都将存储为字符串,因此您将对字符串和数字进行比较,即“30000”==30000@BeshambherChaukhwan没有类型检查,3000==“3000”有效。类型检查需要
==
所有这些都不是本地存储。只有第一个变量是变量,其他所有变量都是变量。那么,在条件出现之前,您是否使用控制台日志检查了所有变量是否都给出了值?请尝试此操作,并检查输出是否处于开发人员模式
console.log(localStorage.getItem(“eg1”)
console.log(eg2)
console.log(eg3)所有变量和本地存储也在工作我已经检查过了,我的代码也有问题。当我只有本地存储条件时,if正在工作。但是当我把其他条件和变量放在一起时,if没有显示任何值results@VishalPillai尝试添加括号来分隔上述3种情况,它会起作用。所有这些都不是本地存储。只有第一个变量是变量,其他所有变量都是变量。那么,在条件出现之前,您是否使用控制台日志检查了所有变量是否都给出了值?请尝试此操作,并检查输出是否处于开发人员模式
console.log(localStorage.getItem(“eg1”)
console.log(eg2)
console.log(eg3)所有变量和本地存储也在工作我已经检查过了,我的代码也有问题。当我只有本地存储条件时,if正在工作。但是当我把其他条件和变量放在一起时,if没有显示任何值results@VishalPillai尝试添加括号来分隔上述3个条件,它将起作用。对不起,我不理解您的代码。我不是一个高级javascript编写者。我去年才开始。对不起,我不懂你的代码。我不是一个高级javascript编写者。我是去年才开始的。这不是一个想法,你们在这里是因为你们不知道如何在语句短路的情况下得到一个简单的3个条件。我只是试图,在没有你的信息的情况下,帮助你一次一次地思考你的问题。你很好对不起,我不是故意粗鲁的。我担心有人会从代码中得到我网站的想法。我没有说不要复制我的想法给你。我说,一般来说这不是一个想法,你们在这里是因为你们不知道如何在语句短路的情况下得到一个简单的3个条件。我只是试图,在没有你的信息的情况下,帮助你一次一次地思考你的问题。你很好对不起,我不是故意粗鲁的。我担心有人会从代码中得到我网站的想法。我没有说不要复制我的想法给你。