【问题标题】:Javascript ternary operator syntax not understood [duplicate]Javascript三元运算符语法不理解[重复]
【发布时间】:2016-09-05 23:47:24
【问题描述】:

我想明白这一点,有人可以写成(if/else/elseif)语句???

lists[list === 'todo' ? 'done' : 'todo'].appendChild(task);

谢谢

【问题讨论】:

  • 奇怪的逻辑 - 如果某件事的状态为“待办事项”,则将其添加到“已完成”,否则添加到“待办事项”
  • 我认为三元运算符重复至少是 OP 混乱的一半。主要是关于括号符号与三进制的组合。

标签: javascript


【解决方案1】:

你可以改写为:

if (list === 'todo') {
    lists.done.appendChild(task);
}
else {
    lists.todo.appendChild(task);
}

这里的事情是您可以通过bracket notation 访问对象的任何属性,这允许变量和表达式解析为属性名称。因此,lists.done 等价于lists['done'],但使用后者,您可以使用表达式来计算键名。这就是原始示例中的内容。

【讨论】:

  • 这个行得通,非常感谢
【解决方案2】:
if (list === 'todo') {
    lists['done'].appendChild(task);
else {
    lists['todo'].appendChild(task);
}

【讨论】:

    猜你喜欢
    • 2015-03-25
    • 2019-08-28
    • 1970-01-01
    • 2019-12-30
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    • 1970-01-01
    • 2020-05-21
    相关资源
    最近更新 更多