Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有更好的方法来编写if(argList[foo]==“bar”=“argList==“bar”)呢?_Javascript_Algorithm_Object_If Statement - Fatal编程技术网

Javascript 有没有更好的方法来编写if(argList[foo]==“bar”=“argList==“bar”)呢?

Javascript 有没有更好的方法来编写if(argList[foo]==“bar”=“argList==“bar”)呢?,javascript,algorithm,object,if-statement,Javascript,Algorithm,Object,If Statement,我有一个if语句: if(argList[“foo”]=“bar”| | argList==“bar”){ //一些代码 }要确保属性存在,最好将助手用作: 打字稿埃尔维斯案 Lodash\uuu.get()方法 if(u.get(argList,“foo”)==“bar”| | argList==“bar”){ //一些代码 } 只有当您尝试访问argList[“foo”][“bar”]这样的更深层次时,问题才是关键的 JSON.stringify 另一个选项是字符串化对象并在此处查找值

我有一个
if
语句:

if(argList[“foo”]=“bar”| | argList==“bar”){
//一些代码

}
要确保属性存在,最好将助手用作:

  • 打字稿埃尔维斯案
  • Lodash
    \uuu.get()
    方法

    if(u.get(argList,“foo”)==“bar”| | argList==“bar”){
    //一些代码
    }

只有当您尝试访问argList[“foo”][“bar”]这样的更深层次时,问题才是关键的

JSON.stringify

另一个选项是字符串化对象并在此处查找值,前提是知道对象中的“bar”是确定性值(因此在argList中没有其他属性可以容纳它):

const argListObj={foo:“bar”};
const argListString=“bar”;
log(JSON.stringify(argListObj).includes(“bar”);
log(JSON.stringify(argListString).includes(“bar”);

//Console日志true,true
所以
argList
可以是数组、对象或字符串?@Lain你是指对象吗?@Kub Network:if的第二个
如果始终是对象,它有什么意义?只要你不实现验证为“bar”的toString,它就永远不会是真的。@Kub Network:如果你这么说的话..我是说rgList始终是一个对象,因此我看不到第二个
if
的用法。但这就是我。我同意lain的观点。即使在新的示例中,也只使用一个函数传递字符串并检查它,另一个函数传递对象并检查属性。不过,不要混合使用这些函数。它现在对您来说可能看起来既新奇又酷,但对您来说不是这样必须在一年后维护该代码的任何人。如果不是列表,也不要使用parametername argList。因为如果变量的嵌套是属性的属性,则代码将以“Uncaught TypeError:无法读取未定义的属性”xxx的形式崩溃
JSON.stringify(argListObj).includes("bar")