首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >js编写重复代码的功能

问js编写重复代码的功能
EN

Stack Overflow用户
提问于 2016-02-25 08:28:59
回答 3查看 50关注 0票数 0

因此,我有以下几点建议:

代码语言:javascript
复制
}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');
}

在这里,唯一改变的是名字和号码。

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

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

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-02-25 08:36:32

你可以这样做:

代码语言:javascript
复制
var valMap = {
  'steve': '42',
  'mike':'43',
  'sean': '44'
};

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

Stack Overflow用户

发布于 2016-02-25 08:43:14

您可以使用regex提取名称:-

​

代码语言:javascript
复制
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);
}

​

票数 2
EN

Stack Overflow用户

发布于 2016-02-25 12:13:52

所有伟大的解决方案,这是我更长的通用方式..。:)

代码语言:javascript
复制
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');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35622019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档