var cl=[],di=[],sp=[],he=[];
for(var i=0;i<arg.length;i++){
if(arg[i].slice(0,2)==='cl'){cl.push(arg[i])};
if(arg[i].slice(0,2)==='di'){di.push(arg[i])};
if(arg[i].slice(0,2)==='sp'){sp.push(arg[i])};
if(arg[i].slice(0,2)==='he'){he.push(arg[i])};
}
这里我有 4 个 if 语句;它们是相同的,我如何减少代码。
最佳答案
有很多方法可以做到这一点。这是我知道的两种方法:
使用switch
语句:
switch((arg[i].slice(0,2)) {
case 'cl' : cl.push(arg[i]); break;
case 'di' : di.push(arg[i]); break;
case 'sp' : sp.push(arg[i]); break;
case 'he' : he.push(arg[i]); break;
}
将数组放入对象中并使用 []
表示法:
var cl=[],di=[],sp=[],he=[];
var map = {
cl : cl,
di : di,
sp : sp,
he : he
};
for(var i=0;i<arg.length;i++){
var key = arg[i].slice(0,2);
if (map[key]) map[key].push(arg[i])
}
关于javascript - 是否有办法减少相同 if 语句中的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32607036/