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我有主意了。让我试试,谢谢,它奏效了。我用了一些其他的方法,但这也起作用了。谢谢,它起作用了。我用了其他的方法,但这也很有效。