Optimization Javascript简单拼图

Optimization Javascript简单拼图,optimization,puzzle,Optimization,Puzzle,如何优化以下JS语句: obj.endDate = obj.status && (obj.status.length == 2 || (obj.status.length == 1 && obj.status[0] == 0)) ? undefined : obj.endDate; 在哪里 obj.status为数组类型,只允许获取以下值: [1] [0] [1,0] 未定义 obj.status可能未定义,也可能未定义 问题并不是真正优化它。问题是它难以辨认。

如何优化以下JS语句:

obj.endDate = obj.status && (obj.status.length == 2 || (obj.status.length == 1 && obj.status[0] == 0)) ? undefined : obj.endDate;
在哪里

obj.status
为数组类型,只允许获取以下值:

  • [1]
  • [0]
  • [1,0]
  • 未定义

  • obj.status
    可能未定义,也可能未定义

    问题并不是真正优化它。问题是它难以辨认。当您或其他人稍后阅读此代码时,如果看到它被拆分为一些if/else,或者至少用一些明确的名称将其拆分为一些if/else,您或其他人将非常感激。

    关于如何改进工作代码的问题最好问一下。如果您的意思是优化类似
    的内容,那么我如何使此代码更易于理解
    ,那么我们必须更好地理解它了解你想要实现的目标。我理解了下面的代码
    如果数组有两个值,或者数组有一个值,并且它是零,那么将endDate设置为undefined。所以我认为这样做是有原因的。如果您可以解释此检查背后的逻辑,那么这可能有助于创建一些具有全名含义的函数。这是什么意思
    (如果obj.status==[0]或obj.status==[1,0])
    这是不是意味着合同未终止?
    ?在指出优化和一般清理之间的区别时,投票赞成。你能举个例子吗?