因此,我有以下几点建议:
}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');
}在这里,唯一改变的是名字和号码。
我很难想出一个函数来重用这样的重复代码。
有人能帮我想出一个函数来简单地重复相同的代码吗?
谢谢
发布于 2016-02-25 08:36:32
你可以这样做:
var valMap = {
'steve': '42',
'mike':'43',
'sean': '44'
};
var name = curret_url.slice(pac.length);
cat_id = valMap[name];
CAT_L(name);发布于 2016-02-25 08:43:14
您可以使用regex提取名称:-
var curret_url = "/foomike/"
var obj = {
steve: '42',
mike: '43',
sean: '44'
};
var val = /\/foo(\w+)/.exec(curret_url); // pac=/foo
if (val.length && obj.hasOwnProperty(val[1])) {
var cat_id = obj[val[1]];
alert(val[1]);
alert(cat_id);
}
发布于 2016-02-25 12:13:52
所有伟大的解决方案,这是我更长的通用方式..。:)
var pac = "",
CAT_L = function(){};
function Record(pac, config, callback) {
var key;
for (key in config) {
this[pac + key] = (function(key) {
return function() {
return callback.call(this, key, config[key]);
}
})(key);
}
return this;
};
Record.prototype.get = function(key) {
return valMap[key].call(this);
}
valMap = new Record(pac, {
'steve': '42',
'mike':'43',
'sean': '44'
}, function(key, val) {
cat_id = val;
CAT_L(key);
});
valMap.get(pac + 'steve');https://stackoverflow.com/questions/35622019
复制相似问题