gpt4 book ai didi

javascript - 有没有更好的写法 if (argList[foo] === "bar"|| argList === "bar")?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:15:58 27 4
gpt4 key购买 nike

我有一个 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 时,我的 var 不是 argList["foo"] === "bar"而是 argList === "bar"

最佳答案

为了确保属性存在,恕我直言,最好使用助手作为:

  • typescript elvis 大小写
  • Lodash _.get() 方法

    if (_.get(argList, "foo") === "bar"|| argList === "bar"){
    //一些代码
    }

只有当您尝试访问更深层次的 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com