gpt4 book ai didi

javascript - 在 JavaScript 中有多个 case 和 fallthrough 的巨大 switch 的替代方案吗?

转载 作者:行者123 更新时间:2023-11-30 07:50:35 25 4
gpt4 key购买 nike

我需要将一些用户生成的字段映射到我正在处理的系统可以识别的内容。

为此,我们希望为用户提供一定程度的自由,并为我们的每个领域提供五个左右的选择。

到目前为止,我们有一个开关可以完成这项工作,但现在我们必须扩展开关,而且它会非常大。不用说,这不是一种非常动态的方式。有没有其他选择?

function findHeader(object) {
var title = object.toString().trim().toLowerCase()
switch (title) {
case 'name':
case 'idea':
case 'ide':
case 'ide navn':
case 'title':
case 'idea name':
title = 'name'
break
case 'beskrivelse':
case 'problemet':
case 'description':
case 'the problem':
case 'ide beskrivelse':
title = 'description'
break
case 'ejer':
case 'owner':
case 'opfinder':
case 'ide person':
case 'idea person':
case 'person':
title = 'owner'
break
case 'duedate':
case 'deadline':
case 'tidsfrist':
case 'sidste dato':
case 'dato':
case 'due date':
title = 'duedate'
break
case 'billede':
case 'billeder':
case 'image':
case 'images':
case 'attachment':
title = 'imageUrl'
break
case "":
title = 'remove'
break
default:
title = 'Unassigned'
break
}
return title
}

最佳答案

也许是一个对象?

const titles = {
'name': ['name', 'idea', 'ide', 'ide navn', 'title', 'idea name'],
'description': ['beskrivelse', 'problemet', 'description', 'the problem', 'ide beskrivelse'],
'owner' : ['ejer', 'owner', 'opfinder', 'ide person', 'idea person', 'person'],
'duedate' : ['duedate', 'deadline', 'tidsfrist', 'sidste dato', 'dato', 'due date'],
'imageUrl' : ['billede', 'billeder', 'image', 'images', 'attachment']
}
const getKey = (obj,val) => Object.keys(obj).find(key => obj[key].indexOf(val) !=-1 );

function findHeader(object) {
var title = object.toString().trim().toLowerCase();
return getKey(titles,title) || 'Unassigned'
}

console.log(
findHeader("Owner"),
findHeader("Bla")
)

关于javascript - 在 JavaScript 中有多个 case 和 fallthrough 的巨大 switch 的替代方案吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53741403/

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