gpt4 book ai didi

javascript - 将常量或变量的值定义为常量或变量的名称,无需赋值

转载 作者:行者123 更新时间:2023-11-28 12:21:54 25 4
gpt4 key购买 nike

我有一个非常长的常量文件,看起来像这样:

export const AUTH_REQUEST = 'AUTH_IN_PROGRESS';
export const AUTH_SUCCESS = 'AUTH_SUCCESS';
export const AUTH_FAIL = 'AUTH_FAIL';
export const AUTH_TERMINATE = 'AUTH_TERMINATE';
export const AUTH_REDIRECT = 'AUTH_REDIRECT';

...等等。

是否可以声明一个与变量本身同名的变量/常量/等?

或者...是否有一个数据结构可以允许这样的事情?

const AUTH = {'TERMINATE', 'REDIRECT'} ...等

因此,您的 AUTH.TERMINATE 的值为 TERMINATE

我的备份解决方案是执行以下操作:const AUTH = keyObj(['TERMINATE', 'SUCCESS'])

该函数看起来像这样:


让 keyObj = (vals)=>{
让 obj = {};
vals.forEach((v)=>{ obj[v]=v; });
返回对象;
}

最佳答案

你可以使用这样的东西:

  1. 使用所需的字符串创建一个数组。
  2. 使用[].reduce构建一个将这些字符串作为属性名称和值的对象,并传递一个空对象作为初始值。 [].forEach也可能有效。
  3. Freeze对象。
var strings = ['a', 'b'],
obj = Object.create(null);
strings.forEach(function(str) {
obj[str] = str;
});
Object.freeze(obj);

在单个语句中缩小,

Object.freeze(['a','b'].reduce((o,s) => (o[s]=s, o), Object.create(null)));

关于javascript - 将常量或变量的值定义为常量或变量的名称,无需赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36209370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com