Dan*_*scu 3 javascript arrays ecmascript-6
假设你有一个o数组哈希值; 例如,当每个事件可以有0个或更多回调时,事件的已注册回调.
在ES6中有更好的方式来说这个吗?
if (key in o) o[key].push(x); else o[key] = [x]
Run Code Online (Sandbox Code Playgroud)
"更好",我的意思是其他开发人员更容易理解.可能更简洁,但不以牺牲可读性为代价.特定(常见)问题o通常是较长的表达,例如this.listeners,重复三次似乎不是最理想的.所以真正的代码可能如下所示:
if (event in this.listeners)
this.listeners[event].push(callback);
else
this.listeners[event] = [callback];
Run Code Online (Sandbox Code Playgroud)
通过当前处于第 4 阶段的提案逻辑分配,您可以执行以下操作:
(o[key] ||= []).push(x);
Run Code Online (Sandbox Code Playgroud)
主流浏览器都支持它。Typescript 也支持它(至少 4.1 及以上版本)
| 归档时间: |
|
| 查看次数: |
525 次 |
| 最近记录: |