Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript三元运算符语法不理解_Javascript - Fatal编程技术网

Javascript三元运算符语法不理解

Javascript三元运算符语法不理解,javascript,Javascript,我想了解这一点,请,有人可以写为(如果/其他/其他)状态 lists[list === 'todo' ? 'done' : 'todo'].appendChild(task); 谢谢您可以将其改写为: if (list === 'todo') { lists.done.appendChild(task); } else { lists.todo.appendChild(task); } 这里的问题是,您可以通过访问对象的任何属性,这允许变量和表达式解析为属性名称。因此,lis

我想了解这一点,请,有人可以写为(如果/其他/其他)状态

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

您可以将其改写为:

if (list === 'todo') {
    lists.done.appendChild(task);
}
else {
    lists.todo.appendChild(task);
}
这里的问题是,您可以通过访问对象的任何属性,这允许变量和表达式解析为属性名称。因此,
lists.done
相当于
lists['done']
但对于后者,您可以使用表达式来计算键名。这是原始示例中的内容。

您可以将其改写为:

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

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

奇怪的逻辑-如果某个对象的状态为“todo”,则将其添加到“done”,否则添加到“todo”,我认为三元运算符重复至少是OP混淆的一半。主要是关于括号符号与三元符号的组合。奇怪的逻辑——如果某个对象的状态为“todo”,则将其添加到“done”,否则添加到“todo”,我认为三元运算符重复至少是OP混淆的一半。主要是关于括号符号和三元符号的组合。这很有用,非常感谢。这部作品,非常感谢
if (list === 'todo') {
    lists['done'].appendChild(task);
else {
    lists['todo'].appendChild(task);
}