TS throws an error:
'parsedHours' is never reassigned. Use 'const' instead prefer-const 'parsedMinutes' is never reassigned. Use 'const' instead prefer-const
When trying to deconstruct this array, after a string split:
let [ parsedHours = '00', parsedMinutes = '00', parsedSeconds = '00', parsedMillis = '000' ] = "12:34:56".split(':'); if (parsedSeconds.includes('.')) { [parsedSeconds, parsedMillis] = parsedSeconds.split('.'); }
Hours and minutes should be declared as constants, but Seconds and Millis may change, thus should be declared as let. This can be fixed in many approaches, but I can’t find a beautiful way of doing this.
Any ideas?
Advertisement
Answer
You can use String.split()
with a RegExp to split by [.:]
:
const splitTime = (str) => { const [ parsedHours = '00', parsedMinutes = '00', parsedSeconds = '00', parsedMillis = '000' ] = str.split(/[.:]/); console.log({ parsedHours, parsedMinutes, parsedSeconds, parsedMillis }); } splitTime("12:34:56") splitTime("12:34:56.35")