我已将第一个函数superscriptDesignation添加到此代码中,现在想要在teamDesignations中的项目上调用它。做
return superscriptDesignation(teamDesignations);
在控制台中给出了一个错误,即未定义.replace。如何将我的函数superscriptDesignation添加到teamDesignations?
JS
var superscriptDesignation = function(designation) {
return designation.replace(/(®)/ig, "<sup>®</sup>").replace(/(™)/ig, "<sup> ™</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;
};
答案 0 :(得分:-1)
这让我想到的是teamDesignations
在传递给superScriptDesignations
时不是字符串。 .replace()
只是String原型的一个方法。
我不熟悉.uniq()
和.flatten()
,但该方法链的结果是字符串吗?无论哪种方式,它都在if
语句中,所以如果不满足,teamDesignations
在传递给superScriptDesignation
时可能是一个空数组。
您可以修改第一个函数中的replace()
方法来处理数组,或者进行一些错误处理以确保参数是一个字符串。即:
var superscriptDesignation = function(designation) {
if(typeof(designation === 'string)) {
//... do your stuff
}
};