Esta es una pregunta de entrevista de práctica relacionada con JS que encontré en línea. Intenté completarlo y agregué el código a continuación. Mi pregunta es si mi código sería una respuesta aceptable a la pregunta: ¿Cree una función para convertir una fecha con formato 'M/D/YYYY' en una fecha con formato 'YYYYMMDD' en JS?
function formattedUserDate(userInput) { const formatDate = userInput const apiDateForm = formatDate.split('/') let formatDateMonth = apiDateForm[0] let formatDateDay = apiDateForm[1] let formatDateYear = apiDateForm[2] formatDateMonth.length == 1 ? formatDateMonth = '0' + formatDateMonth : null; formatDateDay.length == 1 ? formatDateDay = '0' + formatDateDay : null; const apiDateFormArray = [formatDateYear, formatDateMonth, formatDateDay]; return apiDateFormArray.join(''); } console.log(formattedUserDate('5/1/1987'));En Javascript tiene el nuevo método padStart y padEnd tiene la siguiente sintaxis.
"su_cadena".padStart(targetLength [,padString]):
function formattedUserDate(userInput) { const formatDate = userInput const apiDateForm = formatDate.split('/') let formatDateMonth = apiDateForm[0] let formatDateDay = apiDateForm[1] let formatDateYear = apiDateForm[2] formatDateMonth = formatDateMonth.padStart(2, "0") formatDateDay = formatDateDay.padStart(2, "0") const apiDateFormArray = [formatDateYear, formatDateMonth, formatDateDay]; return console.log(apiDateFormArray.join('')); } formattedUserDate('5/1/1987');Creo que esa puede ser una respuesta correcta. Pero su código debe ser limpio y claro así :)
function formattedUserDate(userInput) { const date = userInput.split("/"); let day = date[1], month = date[0], year = date[2]; return (year + formatter(month) + formatter(day)); } const formatter = text => text < 10 ? ('0' + text) : text; console.log("date formatted : " + formattedUserDate('5/1/1987'))function formattedUserDate(userInput) { const apiDateForm = userInput.split('/') let formatDateMonth = `0${apiDateForm[0]}`.slice(-2); let formatDateDay = `0${apiDateForm[1]}`.slice(-2); let formatDateYear = apiDateForm[2] const apiDateFormArray = [formatDateYear, formatDateMonth, formatDateDay]; return console.log(apiDateFormArray.join('')); } formattedUserDate('5/1/1987')