将我的功能添加到另一个?

时间:2016-08-04 21:05:07

标签: javascript

我已将第一个函数superscriptDesignation添加到此代码中,现在想要在teamDesignations中的项目上调用它。做

return superscriptDesignation(teamDesignations);

在控制台中给出了一个错误,即未定义.replace。如何将我的函数superscriptDesignation添加到teamDesignations?

JS

  var superscriptDesignation = function(designation) {
        return designation.replace(/(®)/ig, "<sup>&reg;</sup>").replace(/(™)/ig, "<sup> &#153;</sup>");
    };
    var getTeamDesignations = function(profile) {
        //Designations for a single team member                                                                                                                               
        var teamDesignations = [];
        if (profile.team_members) {
            teamDesignations = _.chain(profile.team_members)
                .filter(_.compose(_.isArray, _.property('team_member_designations')))
                .map(_.property('team_member_designations'))
                .flatten()
                .uniq()
                .value();
        }
        return teamDesignations;
    };

1 个答案:

答案 0 :(得分:-1)

这让我想到的是teamDesignations在传递给superScriptDesignations时不是字符串。 .replace()只是String原型的一个方法。

我不熟悉.uniq().flatten(),但该方法链的结果是字符串吗?无论哪种方式,它都在if语句中,所以如果不满足,teamDesignations在传递给superScriptDesignation时可能是一个空数组。

您可以修改第一个函数中的replace()方法来处理数组,或者进行一些错误处理以确保参数是一个字符串。即:

  var superscriptDesignation = function(designation) {
    if(typeof(designation === 'string)) {
       //... do your stuff
    }
};