Javascript 写这个的正确方法是什么?需要替换switch语句
我正在寻找更好的方法来编写这段代码,因为它看起来很难看。但我想它是对的,但我只是想知道是否有更好的方法来写这个? 基本上,语句中的每个键都需要检查与该键相关的东西。也许我应该写一些大的if语句?或者使用一些JSON对象并将密钥名和名称存储在检查中?如果您能给我一些建议,我将不胜感激 代码并不是真正的代码(现在还没有),它只是我快速编写的东西,以给出一个真实代码的外观示例Javascript 写这个的正确方法是什么?需要替换switch语句,javascript,Javascript,我正在寻找更好的方法来编写这段代码,因为它看起来很难看。但我想它是对的,但我只是想知道是否有更好的方法来写这个? 基本上,语句中的每个键都需要检查与该键相关的东西。也许我应该写一些大的if语句?或者使用一些JSON对象并将密钥名和名称存储在检查中?如果您能给我一些建议,我将不胜感激 代码并不是真正的代码(现在还没有),它只是我快速编写的东西,以给出一个真实代码的外观示例 switch (key) { case 'cat': if (animals.check('kitty')) {
switch (key) {
case 'cat':
if (animals.check('kitty')) {
delete animalsArray[index];
}
break;
case 'dog':
if (animals.check('doggo')) {
delete animalsArray[index];
}
break;
case 'hippo':
if (animals.check('idk')) {
delete animalsArray[index];
}
break;
case 'tiger':
if (animals.check('somethingSpecificforTIGER')) {
delete animalsArray[index];
}
break;
case 'toad':
if (animals.check('idk')) {
delete animalsArray[index];
}
break;
case 'horse':
case 'zebra':
if (animals.check('ass')) {
delete animalsArray[index];
}
break;
default:
break;
}
只需改进代码:p使用将密钥映射到
动物的对象。检查参数:
const mapping = {
cat: "kitty",
dog: "doggo",
...
};
if (mapping.hasOwnProperty(key) && animals.check(mapping[key])) {
delete animalsArray[index];
}
使用将键映射到动物的对象。选中
参数:
const mapping = {
cat: "kitty",
dog: "doggo",
...
};
if (mapping.hasOwnProperty(key) && animals.check(mapping[key])) {
delete animalsArray[index];
}
我不确定我是否能得到你想要的,但你不能使用类似于:
var zoo = {
king : 'lion',
thief : 'snake'
}
var arr = ['lion', 'snake'];
delete arr[arr.indexOf(zoo.king)]
我不确定我是否能得到你想要的,但你不能使用类似于:
var zoo = {
king : 'lion',
thief : 'snake'
}
var arr = ['lion', 'snake'];
delete arr[arr.indexOf(zoo.king)]
?请分享您自己为改进代码所做的任何尝试,如果您陷入困境,我们可以提供帮助。@melpomene此代码不在CR主题中,因为“并且代码不是真实的代码(现在没有),这只是我快速编写的内容,以给出真实代码的外观示例。
”请阅读CR页面?请分享您自己为改进代码所做的任何尝试,然后如果您陷入困境,我们可以提供帮助。@melpomene此代码不在CR主题中,因为“并且代码不是真正的代码(现在没有)“请阅读CRNatural idea(+1)的页面,但鉴于ES6+的几乎普遍支持,地图
难道不会比对象更自然吗?@JohnColeman一个地图
会做什么,而一个简单的对象做不到?当然有点基于观点,但是hasOwnProperty
是一个笨拙的锅炉板,它可以追溯到JavaScript对字典类型数据结构没有很好的支持的时候。使用Map
替换为if-mapping.has(key)
,但代码本质上是相同的。创建映射更详细。谢谢这就是我对json对象的意思,我不知道好的lol:P我会这么做,肯定会让代码看起来更好谢谢!自然理念(+1)但鉴于ES6+的几乎普遍支持,Map
难道不是比一个对象更自然吗?@JohnColemanMap
会做什么,而一个简单的对象做不到?当然有点基于观点,但是hasOwnProperty
是一个笨拙的锅炉板,它可以追溯到JavaScript对字典类型数据结构没有很好的支持的时候。使用Map
替换为if-mapping.has(key)
,但代码本质上是相同的。创建映射更详细。谢谢这就是我对json对象的意思,我不知道好的lol:P我会这么做,肯定会让代码看起来更好谢谢arr[arr.indexOf(zoo.king)]
与刚才的zoo.king
是一样的,但不需要删除数组吗?我不知道你想要什么我不知道你在问什么。我不想取得任何成就,我没有写这个问题。我只是不知道这是如何回答这个问题的。arr
的用途是什么?这应该与问题中的animalarray
相同吗?arr[arr.indexOf(zoo.king)]
与刚才的zoo.king
相同。是的,但不需要删除数组吗?我不知道你想要什么我不知道你在问什么。我不想取得任何成就,我没有写这个问题。我只是不知道这是如何回答这个问题的。arr
的目的是什么?这应该与问题中的animalarray
相同吗?