En este artículo, explicaré cómo resolver el desafío "Confirmar el final " de freeCodeCamp . Esto implica verificar si una cadena termina con una secuencia específica de caracteres.
Hay dos enfoques que cubriré:
- usando el método substr ()
- usando el método endsWith ()
Descripción del desafío del algoritmo
Compruebe si una cadena (primer argumento,str
) termina con la cadena de destino dada (segundo argumento, target
).Este desafío se puede resolver con el .endsWith()
método, que se introdujo en ES2015. Pero para el propósito de este desafío, nos gustaría que utilizara uno de los métodos de subcadena de JavaScript en su lugar.
function confirmEnding(string, target) { return string; } confirmEnding("Bastian", "n");
Casos de prueba proporcionados
confirmEnding("Bastian", "n") should return true. confirmEnding("Connor", "n") should return false. confirmEnding("Walking on water and developing software from a specification are easy if both are frozen", "specification") should return false. largestOfFour([[4, 9, 1, 3], [13, 35, 18, 26], [32, 35, 97, 39], [1000000, 1001, 857, 1]]) should return [9, 35, 97, 1000000]. confirmEnding("He has to give me a new name", "name")should return true. confirmEnding("Open sesame", "same") should return true. confirmEnding("Open sesame", "pen") should return false. confirmEnding("If you want to save our world, you must hurry. We dont know how much longer we can withstand the nothing", "mountain") should return false. Do not use the built-in method .endsWith() to solve the challenge.
Enfoque n. ° 1: confirmar el final de una cadena con funciones integradas, con substr ()
Para esta solución, usará el método String.prototype.substr ():
- El
substr()
método devuelve los caracteres en una cadena que comienza en la ubicación especificada hasta el número especificado de caracteres.
¿Por qué estás usando string.substr(-target.length)
?
Si target.length es negativo, el método substr () iniciará el conteo desde el final de la cadena, que es lo que desea en este desafío de código.
No desea utilizar string.substr(-1)
para obtener el último elemento de la cadena, porque si el objetivo tiene más de una letra:
confirmEnding("Open sesame", "same")
… El objetivo no regresará en absoluto.
Entonces aquí string.substr(-target.length)
obtendrá el último índice de la cadena 'Bastian' que es 'n'.
Luego verifica si string.substr(-target.length)
es igual al objetivo (verdadero o falso).
function confirmEnding(string, target) { // Step 1. Use the substr method if (string.substr(-target.length) === target) { // What does "if (string.substr(-target.length) === target)" represents? // The string is 'Bastian' and the target is 'n' // target.length = 1 so -target.length = -1 // if ('Bastian'.substr(-1) === 'n') // if ('n' === 'n') // Step 2. Return a boolean (true or false) return true; } else { return false; } } confirmEnding('Bastian', 'n');
Sin comentarios:
function confirmEnding(string, target) { if (string.substr(-target.length) === target) { return true; } else { return false; } } confirmEnding('Bastian', 'n');
Puede usar un operador ternario como atajo para la instrucción if:
(string.substr(-target.length) === target) ? true : false;
Esto se puede leer como:
if (string.substr(-target.length) === target) { return true; } else { return false; }
Luego devuelve el operador ternario en su función:
function confirmEnding(string, target) { return (string.substr(-target.length) === target) ? true : false; } confirmEnding('Bastian', 'n');
También puede refactorizar su código para hacerlo más conciso simplemente devolviendo la condición:
function confirmEnding(string, target) { return string.substr(-target.length) === target; } confirmEnding('Bastian', 'n');
Enfoque n. ° 2: confirmar el final de una cadena con funciones integradas, con endsWith ()
Para esta solución, usará el método String.prototype.endsWith ():
- El
endsWith()
método determina si una cadena termina con los caracteres de otra cadena, regresandotrue
ofalse
según corresponda. Este método distingue entre mayúsculas y minúsculas.
function confirmEnding(string, target) { // We return the method with the target as a parameter // The result will be a boolean (true/false) return string.endsWith(target); // 'Bastian'.endsWith('n') } confirmEnding('Bastian', 'n');
Espero que hayas encontrado esto util. Esto es parte de mi serie de artículos “Cómo resolver algoritmos FCC” sobre los desafíos de algoritmos de freeCodeCamp, donde propongo varias soluciones y explico paso a paso lo que sucede bajo el capó.
Tres formas de repetir una cadena en JavaScript
En este artículo, explicaré cómo resolver el desafío "Repetir una cadena, repetir una cadena" de freeCodeCamp. Esto involucra…
Tres formas de invertir una cadena en JavaScript
Este artículo se basa en la secuencia de comandos del algoritmo básico de Free Code Camp "Reverse una cadena"
Tres formas de factorializar un número en JavaScript
Este artículo se basa en la secuencia de comandos del algoritmo básico de Free Code Camp "Factorializar un número"
Dos formas de buscar palíndromos en JavaScript
Este artículo se basa en el Scripting del algoritmo básico de Free Code Camp "Comprobar palíndromos".
Tres formas de encontrar la palabra más larga de una cadena en JavaScript
Este artículo se basa en la secuencia de comandos del algoritmo básico de Free Code Camp "Encuentra la palabra más larga en una cadena".
Tres formas de poner un título a una oración en JavaScript
Este artículo se basa en la secuencia de comandos del algoritmo básico de Free Code Camp “Título de caso una oración”.
Si tiene su propia solución o alguna sugerencia, compártala a continuación en los comentarios.
O puedes seguirme en Medium , Twitter, Github y LinkedIn , justo después de hacer clic en el corazón verde a continuación ;-)
# StayCurious, # KeepOnHacking & # MakeItHappen!
Recursos adicionales
- método substr () - MDN
- método endsWith () - MDN
- Operador ternario - MDN