我正在寻找一种更好的方式编写此代码,因为它看起来非常丑陋。但是我想它工作正常,但是我只是想知道是否有更好的方法来编写此代码? 基本上,语句中的每个键都需要检查与该键相关的事物。也许我应该写一些大的if语句?还是使用一些JSON对象并存储密钥名称以及该名称在检查中的名称?希望能找到一些最佳方法的提示!
并且该代码不是真正的代码(目前尚无),这只是我快速编写的内容,以举例说明真实代码的外观。
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
答案 0 :(得分:3)
使用将键映射到animals.check
参数的对象:
const mapping = {
cat: "kitty",
dog: "doggo",
...
};
if (mapping.hasOwnProperty(key) && animals.check(mapping[key])) {
delete animalsArray[index];
}
答案 1 :(得分:-1)
我不确定我能得到你想要的东西,但是你不能使用类似的东西:
var zoo = {
king : 'lion',
thief : 'snake'
}
var arr = ['lion', 'snake'];
delete arr[arr.indexOf(zoo.king)]