Monday, June 3, 2024
2
rated 0 times [  7] [ 5]  / answers: 1 / hits: 19761  / 4 Years ago, mon, july 27, 2020, 12:00:00

I have a kebabize function which converts camelCase to kebab-case. I am sharing my code. Can it be more optimized? I know this problem can be solved using regex. But, I want to do it without using regex.


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')

More From » ecmascript-6

 Answers
3



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'));




You can just check every letter is if upperCase or not and replace it.


[#50759] Saturday, July 18, 2020, 4 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
janjadonb

Total Points: 4
Total Questions: 114
Total Answers: 118

Location: Mali
Member since Fri, Dec 3, 2021
3 Years ago
;