gpt4 book ai didi

javascript - 自动用 if/else 替换条件运算符?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:50:39 25 4
gpt4 key购买 nike

一个特定的 JS 解析器(不在我的控制之下)不理解这样的嵌套条件运算符语法:

return num === 1 ? condition ? condition : something : something;

因此,我想用 if/else block 替换文件中的所有条件运算符(简单的和嵌套的)。我该怎么做? (Textmate 或类似的正则表达式会有所帮助。)

最佳答案

How do I go about it? (A regexp for Textmate or similar would be helpful.

我认为这对于正则表达式是不可能的——你需要用它们来解析整个 JS 表达式语法。当然,您可以使用它们来查找三元运算符的出现,但需要手动替换它们。

这是因为条件运算符形成表达式,而 if/else 结构是语句。这意味着您将需要取消包含 if-else 周围的三元运算符的语句。改造一般有两种方案

<some statement ( condition ? then-expression : else-expression) >

  1. if ( condition ) {

    <some statement then-expression>

    } else {

    <some statement else-expression>

    }

  2. var helper;

    if ( condition )

    helper = then-expression;

    else

    helper = else-expression;

    <some statement helper>

选择哪一个取决于某些语句的复杂性(对于您的return-语句,我会选择#1)。由于替换带来了自己的语法规则,您甚至可能需要调整周围的 block 。所有这一切都不是一项微不足道的任务,恕我直言,只有当您已经有了要转换的已解析 AST 时才能自动完成。

关于javascript - 自动用 if/else 替换条件运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14690067/

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