Javascript 如何在switch语句中进行代码优化

Javascript 如何在switch语句中进行代码优化,javascript,optimization,switch-statement,Javascript,Optimization,Switch Statement,我有一个单开关的情况下,很少有两种情况下,有非常小的差异,在代码。如何全局声明以最小化代码 这是我的密码 switch(clickedDataIndex){ case A : var data = record.get(data1); var Object = { 'AID':AID, 'BID':record.g

我有一个单开关的情况下,很少有两种情况下,有非常小的差异,在代码。如何全局声明以最小化代码

这是我的密码

switch(clickedDataIndex){
            case A :
                var data = record.get(data1);
                var Object = {
                        'AID':AID,
                        'BID':record.get(BID),
                        'CID':record.get(CID),
                        'DId' : record.get(D1),
                }
                if(data){
                    myFunction(Object);
                }
                break
            case B:
                var data = record.get(data2);
                var Object = {
                        'AID':AID,
                        'BID':record.get(BID),
                        'CID':record.get(CID),
                        'DId' : record.get(D12),
                }
                if(data){
                    myFunction(Object);
                }
                break;
        }

如果在对象创建过程中注意到许多属性是相同的。有什么方法可以避免这种情况。

您可以创建一个函数来减少代码重复

function doProcess(data, aId, bId, cId, dId){
  var data = record.get(data);
  var Object = {
      'AID': aId,
      'BID':record.get(bId),
      'CID':record.get(cId),
      'DId' : record.get(dId),
  }
  if(data) myFunction(Object);
}

switch(clickedDataIndex) {
 case 'A':
   doProcess(data1, AID, BID, CID, d1);
 break;
 case 'B':
   doProcess(data2, AID, BID, CID, D12);
 break;
}

您可以创建一个函数来减少代码重复

function doProcess(data, aId, bId, cId, dId){
  var data = record.get(data);
  var Object = {
      'AID': aId,
      'BID':record.get(bId),
      'CID':record.get(cId),
      'DId' : record.get(dId),
  }
  if(data) myFunction(Object);
}

switch(clickedDataIndex) {
 case 'A':
   doProcess(data1, AID, BID, CID, d1);
 break;
 case 'B':
   doProcess(data2, AID, BID, CID, D12);
 break;
}

调用单独的函数doAction()


函数doAction(数据,DId)
{
var data=record.get(数据);
如果(数据)
{
变量对象={
“援助”:援助,
“出价”:记录。获取(出价),
“CID”:记录。获取(CID),
“DId”:记录。获取(DId),
}
myFunction(Object);
}
}
开关(单击数据索引)
{
案例A:
doAction(数据1,D1);
打破
案例B:
doAction(数据2,D12);
打破
}

调用单独的函数doAction()


函数doAction(数据,DId)
{
var data=record.get(数据);
如果(数据)
{
变量对象={
“援助”:援助,
“出价”:记录。获取(出价),
“CID”:记录。获取(CID),
“DId”:记录。获取(DId),
}
myFunction(Object);
}
}
开关(单击数据索引)
{
案例A:
doAction(数据1,D1);
打破
案例B:
doAction(数据2,D12);
打破
}

从那些重复的部分提取一个函数并调用它。你能告诉我你的建议吗?你的案例是这样的:
案例a:myOtherFunction(data1,'D1');中断创建一个用于对象创建的参数化函数,然后使用不同的参数从开关调用该函数,这样它将使用一个函数创建不同的对象,并且使用更少的参数code@SergioTulentsev我有主意了。让我试着从那些重复的部分提取一个函数并调用它。你能告诉我你的建议吗?
case a:myOtherFunction(data1,'D1');中断创建一个用于对象创建的参数化函数,然后使用不同的参数从开关调用该函数,这样它将使用一个函数创建不同的对象,并且使用更少的参数code@SergioTulentsev我有主意了。让我试试,谢谢,它奏效了。我用了一些其他的方法,但这也起作用了。谢谢,它起作用了。我用了其他的方法,但这也很有效。