You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中这段嵌套三元运算符的运行逻辑是怎样的?

嵌套三元运算符逻辑解释

你之前的理解是完全正确的,JavaScript中三元运算符为右结合规则,你给出的代码可以等价转换为如下if-else写法,逻辑会更清晰:

let columns;
if (!isUser1Readable) {
  // 用户1无可读权限的场景
  columns = allColumns.filter(column => !columnIdsUser1.includes(column.id));
} else if (!isUser2Readable) {
  // 用户1有可读权限、但用户2无可读权限的场景
  columns = allColumns.filter(column => !columnIdsUser2.includes(column.id));
} else {
  // 两个用户都有可读权限的场景
  columns = allColumns;
}

你疑问的解答

直接将完整allColumns赋值给columns的触发条件是:isUser1Readable求值为true 且 isUser2Readable也同时求值为true。

这段代码的整体作用是按优先级判断两个用户的列可读权限,动态返回过滤后的列配置:

  • 优先校验用户1的权限,只要用户1无权限就只返回用户1可见的列
  • 用户1有权限时才校验用户2的权限,用户2无权限就返回用户2可见的列
  • 两个用户都有权限时,返回完整的全量列配置

内容的提问来源于stack exchange,提问作者stackuser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 12:24:03