javascript - Javascript 将字符串常量定义为速记属性
问题描述
有没有办法像速记属性一样定义字符串值,例如(这不起作用):
const dict = {
USER_LOGIN,
USER_LOGOUT
};
这将相当于:
const dict = {
USER_LOGIN: "USER_LOGIN",
USER_LOGOUT: "USER_LOGOUT"
};
我想定义一个常量字典,但我想知道是否可以以某种方式避免重复模式MYVALUE : "MYVALUE"
。
是否有任何简写方式来声明具有与其字符串值等效的值的对象键,类似于上面的(不工作)代码?
解决方案
没有内置的方法可以自动执行类似的操作,但是如果您想保持代码 DRY,您可以创建一个辅助函数,当传递一个字符串数组时,它会创建一个具有这些属性的对象:
const makeDict = arr => arr.reduce((a, str) => ({ ...a, [str]: str }), {});
const dict = makeDict(['USER_LOGIN', 'USER_LOGOUT']);
console.log(dict);
推荐阅读
- html - HTML中的rel和href以及src有什么区别
- spring - 当某些特定条件不适用时如何加载备用 bean
- django - Django alter admin save 更改另一个表字段
- java - 启动画面图片小android
- java - 在 Mac 上安装 JavaFX 15
- javascript - 将自定义错误类传递给 Express 错误中间件时,Node.Js 套接字挂起
- bash - 是否可以在 Mac 终端上使用 ls 命令在目录中按类型查看排序文件?
- html - 如何使用 CSS 删除文本开头的空格?
- r - 通过闪亮但在外部的渲染图传递图像对象
- c# - 传播 C# 鼠标离开事件