我有一个if
语句:
if (argList["foo"] === "bar" || argList === "bar"){
// some code
}
我想知道是否存在一种更短或更优雅的方式来编写此条件。
为什么我这样写这样的声明?
我有一个名为startTool(argList)的函数,另一个名为startCreate(argList)。
mod.zsh_apiStartTool = function(argList, callback) {
// some code
if (argList["tool"] === "measure" || argList === "measure"){
//some code to start the tool
}
if (argList["tool"] === "scanning"|| argList === "scanning"){
// some code to start the tool
}
ZSH_JS_API_ERROR(callback);
return;
}
mod.zsh_apiStartCreate = function(argList, callback) {
// some code
if (argList["tool"] === "measure"){
mod.zsh_apiStartTool("measure")
}
if (argList["tool"] === "scanning"){
mod.zsh_apiStartTool("scanning");
}
ZSH_JS_API_ERROR(callback);
return;
}
因此,当我从startCreate进入startTool时,我的变量不是argList [“foo”] ===“bar”,而是argList ===“bar”
最佳答案
要确保属性存在恕我直言,最好使用辅助方法,如:
_.get()
方法if (_.get(argList, "foo") === "bar" || argList === "bar"){ // some code }
仅当您尝试访问更深层次的argList [“foo”] [“bar”]时,此问题才是严重的
JSON.stringify
如果您知道“bar”是对象中的确定性值,那么可以通过另一种方法对对象进行字符串化并在此处查找值(因此,argList中没有其他属性可以容纳它):
JSON.stringify(argListObj).includes("bar")
const argListObj = { foo: "bar" };
const argListString = "bar";
console.log(JSON.stringify(argListObj).includes("bar"));
console.log(JSON.stringify(argListString).includes("bar");
// Console logs true, true
关于javascript - 是否有更好的方式编写if(argList [foo] === “bar” || argList === “bar”)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56457858/