gpt4 book ai didi

javascript - 将 bool 表达式简化为一个表达式

转载 作者:太空宇宙 更新时间:2023-11-04 03:05:56 25 4
gpt4 key购买 nike

我有这个 bool 表达式,如果可能的话我想清理它:

const isDebug =
(execArgs.indexOf('--debug') > -1) ||
(execArgs.indexOf('debug') > -1) ||
(execArgs.indexOf('--inspect') > -1) ||
(execArgs.indexOf('--debug=5858') > -1) ||
(execArgs.indexOf('--debug-brk=5858') > -1);

必须使用额外的括号和 ||有点笨拙。

我可以这样做(我认为):

const expressions = [
execArgs.indexOf('--debug') > -1,
execArgs.indexOf('debug') > -1,
execArgs.indexOf('--inspect') > -1,
execArgs.indexOf('--debug=5858') > -1,
execArgs.indexOf('--debug-brk=5858') > -1
];

const isDebug = !expressions.every(x => !x);

是否有更简洁的方法来提取这样的表达式?使用 [].every 的双重否定令人难以忍受。

最佳答案

你做得还不够:

const expressions = [
'--debug',
'debug',
'--inspect',
'--debug=5858',
'--debug-brk=5858'
];

const isDebug = expressions.some(x => execArgs.indexOf(x) > -1);

因为 !_.every(x => !_)_.some(x => _)。至少从逻辑上来说是这样。

另一个选项使用正则表达式。您可以从数组构建它:

const isDebug = new RegExp(expressions.join('|')).test(execArgs);

或者来自 RegExp 文字:

const isDebug = /--debug|debug|--inspect|--debug=5858|--debug-brk=5858/.test(execArgs)

关于javascript - 将 bool 表达式简化为一个表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40734042/

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