javascript - 具有空值合并的 ES6 数组扩展运算符
问题描述
Expression expected
尝试此操作时出现错误:
const func = () => [0, 1]
const possibly_undefined_var = { var: 3 }
const var = [possibly_undefined_var?.var ?? ...func()]
预期结果:[3] 或 [0, 1]
我想知道在这个例子中是否有任何方法可以使用数组扩展运算符和空值合并。
解决方案
我认为最清晰的方法是使用条件运算符:
const obj = possibly_undefined_var?.var;
const arr = obj ? [obj] : [...func()];
我想不出任何好的方法来替代单个数组文字内obj
的传播,func
这不会造成不必要的混乱和冗长(我认为无论如何都需要条件运算符)。
如果obj
可以是 false 而不是 null 或 undefined,那么它需要更多的代码:
const obj = possibly_undefined_var?.var;
const arr = (obj === null || obj === undefined) ? [...func()] : [obj];
推荐阅读
- javascript - 如何将作为另一个对象属性的函数传递给函数并在javascript中调用它?
- python - 如何将值列表提供给张量流中的占位符列表?
- sql - 列出姓名中包含“%”字符的员工姓名
- reactjs - 语义-ui反应组件didmount solidity事件订阅消息
- caching - CDN 下的 Socket.io 错误
- java - 传递 Java 谓词
- php - 将数据从数据库内爆到回显复选框,选中
- ios - 我无法在后台播放音乐(Xcode 9、Swift 4)
- spring - 使用 PageableDefault 测试休息控制器
- javascript - 根据数组对对象进行排序以生成排序数组