我有一个 kebabize 函数,可以将 camelCase 转换为 kebab-case。我正在分享我的代码。可以更优化吗?我知道这个问题可以使用正则表达式来解决。但是,我想在不使用正则表达式的情况下做到这一点。
const kebabize = str => {
let subs = []
let char = ''
let j = 0
for( let i = 0; i < str.length; i++ ) {
char = str[i]
if(str[i] === char.toUpperCase()) {
subs.push(str.slice(j, i))
j = i
}
if(i == str.length - 1) {
subs.push(str.slice(j, str.length))
}
}
return subs.map(el => (el.charAt(0).toLowerCase() + el.substr(1, el.length))).join('-')
}
kebabize('myNameIsStack')
最佳答案
const kebabize = str => {
return str.split('').map((letter, idx) => {
return letter.toUpperCase() === letter
? `${idx !== 0 ? '-' : ''}${letter.toLowerCase()}`
: letter;
}).join('');
}
console.log(kebabize('myNameIsStack'));
console.log(kebabize('MyNameIsStack'));
您可以检查每个字母是否为大写并替换它。
关于javascript - camelCase 到 kebab-case,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63116039/