Javascript 带枚举字段的条件逻辑

Javascript 带枚举字段的条件逻辑,javascript,vue.js,strapi,Javascript,Vue.js,Strapi,我正在使用strapi为客户创建一个CMS,我想让他们控制问卷中的问题。在调查问卷中,每个问题将分为以下部分: -section 1 ---question ---question -section 2 ---question ---question 因此,在strapi中,我创建了一个集合类型,其中包含两个字段:Section(类型枚举)和Question(类型text) 我的问题是strapi不允许我在我的枚举中有空格,所以当我在网站上想将其显示为“业务信息”时,我不得不将我的部分设置为“

我正在使用strapi为客户创建一个CMS,我想让他们控制问卷中的问题。在调查问卷中,每个问题将分为以下部分:

-section 1
---question
---question
-section 2
---question
---question
因此,在strapi中,我创建了一个集合类型,其中包含两个字段:Section(类型枚举)和Question(类型text)

我的问题是strapi不允许我在我的枚举中有空格,所以当我在网站上想将其显示为“业务信息”时,我不得不将我的部分设置为“业务信息”。我编写了一个简单的映射函数(vue js中的方法)使其工作:

sectionMapping(section) {
 switch(section) {
     case 'business_info': 
         return 'Business Information';
     case 'target_market':
         return 'Target Market';
     default: 
         return 'Section'
}
这样,每当我的客户想要在问卷中添加一个部分时,我就必须进行代码更新,这并不理想。我提出的一个解决方案是将节从枚举更改为文本数据类型,但如果我的客户机输入错误,它将创建一个完整的其他节。这就是为什么我喜欢枚举的想法

有什么建议吗


谢谢

实现这一点最有活力的方法可能是用空格和大写字母替换下划线

首先,要使用函数将字符串拆分为数组

接下来,您要使用每个单词的第一个字母的大写字母遍历结果数组。下面的示例取自此:

section.charAt(0.toUpperCase()+s.slice(1);
最后,将字符串数组合并在一起,并使用空格作为分隔符。当你把所有的东西放在一起时,你应该得到一个函数,看起来像:

截面映射(截面){
返回段。拆分(“389;”)
.map(s=>s.charAt(0.toUpperCase()+section.slice(1))
.加入(“”);
}

您必须更改处理默认案例的方式,以返回
“Section”
,但此函数应该可以消除每次添加新的Section标题时对该函数进行折射的需要。

您的解决方案非常有效!您只需将+“section.slice(1)”替换为“+s.slice(1)”。这是一个很好的解决办法!非常感谢你!