我使用了一个像这样工作的react组件
<FontAwesomeIcon icon={faCoffee} />它采取字体可怕的图标,让说地址簿它添加fa之前,删除连字符和大写每个世界的第一个字母。
address-book become faAddressBook
copyright become faCopyright
arrow-alt-circle-down become faArrowAltCircleDown是否可以创建一个javascript函数,该函数接受这样的数组
["address-book","copyright","arrow-alt-circle-down"]
并将其转换成这样的数组
["faAddressBook","faCopyright","faArrowAltCircleDown"]
发布于 2018-02-13 00:02:02
有一些方法可以做到。比如使用正则表达式。但是,您的需求很简单,所以可以很容易地使用JavaScript拆分方法来完成。请检查下列已实现的功能。
function formatArray(str)
{
str = str.split("-");
for (var i = 0, x = str.length; i < x; i++) {
str[i] = str[i][0].toUpperCase() + str[i].substr(1);
}
return 'fa' + str.join("");
}
var givenArr = ["address-book","copyright","arrow-alt-circle-down"];
for( var i = 0; i < givenArr.length; i++) {
givenArr[i] = formatArray(givenArr[i]);
console.log(givenArr[i]+ '\n');
}
发布于 2018-02-13 00:00:37
您可以使用Array的map()和forEach()执行以下操作
var arr = ["address-book","copyright","arrow-alt-circle-down"];
function upperCase(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
var outPut = arr.map(function(item){
var temp = item.split('-');
var temp2 = [];
temp.forEach(function(data){
temp2.push(upperCase(data))
});
return 'fa' + temp2.join('')
})
console.log(outPut);
发布于 2018-02-13 00:02:30
看上去这里有两个基本步骤。首先,我们需要在每个字符串上加上fa,其次,我们需要将它们从kebab-case转换为camelCase。
因此,只需为每个转换编写一个函数,然后使用每个转换通过映射运行数组:
const kebabs = ["address-book","copyright","arrow-alt-circle-down"];
function kebabToCamel(str) {
return str.replace(/-(\w)/g, m => m[1].toUpperCase());
}
function prependFa(str) {
return "fa-" + str;
}
console.log(kebabs.map(prependFa).map(kebabToCamel))
https://stackoverflow.com/questions/48757389
复制相似问题