Javascript js编写了一个重复代码的函数

Javascript js编写了一个重复代码的函数,javascript,function,Javascript,Function,因此,我有以下几点: }else if (name== pac + 'steve/'){ var cat_id = '42'; CAT_L('steve'); }else if (curret_url == pac + 'mike/'){ var cat_id = '43'; CAT_L('mike'); }else if (curret_url == pac + 'sean/'){ var cat_id = '44'; CAT_L('sean')

因此,我有以下几点:

}else if (name== pac + 'steve/'){
    var cat_id = '42';
    CAT_L('steve');
}else if (curret_url == pac + 'mike/'){
    var cat_id = '43';
    CAT_L('mike');
}else if (curret_url == pac + 'sean/'){
    var cat_id = '44';
    CAT_L('sean');
}
在这里,唯一改变的是名字和号码

我很难想出一个函数来重用这样重复的代码

有人能帮我想出一个简单地重复相同代码的函数吗


谢谢

您可以执行以下操作:

var valMap = {
  'steve': '42',
  'mike':'43',
  'sean': '44'
};

var name = curret_url.slice(pac.length);
cat_id = valMap[name];
CAT_L(name);

您可以执行以下操作:

var valMap = {
  'steve': '42',
  'mike':'43',
  'sean': '44'
};

var name = curret_url.slice(pac.length);
cat_id = valMap[name];
CAT_L(name);

您可以使用正则表达式提取名称:-

var curret_url=“/foomike/”
var obj={
史蒂夫:“42”,
迈克:“43”,
肖恩:“44”
};
var val=/\/foo(\w+/.exec(curret\u url);//pac=/foo
if(val.length&&obj.hasOwnProperty(val[1])){
var cat_id=obj[val[1];
警报(val[1]);
警报(cat_id);

}
您可以使用正则表达式提取名称:-

var curret_url=“/foomike/”
var obj={
史蒂夫:“42”,
迈克:“43”,
肖恩:“44”
};
var val=/\/foo(\w+/.exec(curret\u url);//pac=/foo
if(val.length&&obj.hasOwnProperty(val[1])){
var cat_id=obj[val[1];
警报(val[1]);
警报(cat_id);

}
所有伟大的解决方案,以下是我较长的通用方法…:)


所有伟大的解决方案,这里是我的更长的通用方法…:)



你能给我举个例子吗?感谢
pac
的内容是什么?它是一个简单的域
var-pac='example.com/switch
语句来处理这种情况。你能给我举个例子吗?感谢
pac
的内容是什么?它是一个简单的域
var-pac='example.com/switch
语句。谢谢。学到了一些新东西:)你可以用
map
替换
if
条件
if
语句允许您一次执行一个条件,但
map
将执行所有条件<代码>映射
在循环然后调用该函数时很有用,否则就没有意义了。@HarryBomrah我不同意,对于初学者来说,
映射
并不意味着循环,这就是
数组
的作用,除此之外,这样做会更简洁,因为所有情况都做类似的事情……伙计们,你在谈论不同的事情。mido谈到了一个映射,就像在将键映射到值时,Harry似乎谈到了
Array.prototype.map
@mido,我会添加一个检查,以确保
current\u url.startsWith(pac)和&name在valMap
中。只是为了处理可能不明确或错误的输入(变量中的值),谢谢。学到了一些新东西:)你可以用
map
替换
if
条件
if
语句允许您一次执行一个条件,但
map
将执行所有条件<代码>映射
在循环然后调用该函数时很有用,否则就没有意义了。@HarryBomrah我不同意,对于初学者来说,
映射
并不意味着循环,这就是
数组
的作用,除此之外,这样做会更简洁,因为所有情况都做类似的事情……伙计们,你在谈论不同的事情。mido谈到了一个映射,就像在将键映射到值时,Harry似乎谈到了
Array.prototype.map
@mido,我会添加一个检查,以确保
current\u url.startsWith(pac)和&name在valMap
中。只是为了处理可能不明确或错误的输入(变量中的值)