【问题标题】:Why Use: Expression && Expression ... in code? [duplicate]为什么在代码中使用:Expression && Expression ...? [复制]
【发布时间】:2023-04-05 23:38:01
【问题描述】:

下面这行 JavaScript 的目的是什么?

for (p in d) d.hasOwnProperty(p) && h.push([p, d[p]]);

据我所知,它并没有改变什么。这是否意味着:如果d 具有属性p 并且pd[p] 可以推到h 上,那么表达式是否为真?因此,如果d 没有属性ph.push 将永远不会发生。

这正是我讨厌简洁代码的原因。

【问题讨论】:

  • 您的解释是正确的,只是 true 部分在这里并不重要。
  • 该代码并不简洁。它可能很简洁,但绝对不简洁。
  • 我的词汇量很烂。我的英语文学很差。这就是我学习计算机科学而不是莎士比亚的原因。

标签: javascript


【解决方案1】:

这个想法是,当使用 && 时,首先评估左侧部分。当且仅当其返回值为 true 时,才对正确的部分进行评估。

因此,对于每次迭代,首先评估 d.hasOwnProperty(p)。如果结果为真,则计算 h.push([p, d[p]])。

【讨论】:

  • 谢谢!这让我昏迷了 5 分钟。
【解决方案2】:

这是一个快捷方式

for (p in d) if (d.hasOwnProperty(p)) h.push([p, d[p]]);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    • 2017-10-12
    • 1970-01-01
    • 2016-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多