Actualizaré mi escritura todos los días. Lo he estado aprendiendo por un tiempo y todavía estoy muy impresionado. Volveré a revisar los conocimientos básicos previos y viviré para aprender. Espero ayudar a algunos estudiantes en FreecodeCamp, actualizaré el código que estoy escribiendo FreecodeCamp todos los días. Espero que todos puedan ayudar.
# 253 Invertir una cuerda
Convierta la cadena en una matriz, luego use el método inverso de la matriz para invertir el orden de la matriz y, finalmente, convierta la matriz en una cadena.
function reverseString (str) { // Por favor escriba su código aquí return str.split (''). reverse (''). join (''); // El método split () usa la cadena de separación especificada Dividir un objeto String en una matriz de cadenas para separar la cadena en subcadenas para determinar la ubicación de cada división. // El método reverse () invierte la posición de los elementos en la matriz. El método // join () une todos los elementos de una matriz (o un objeto similar a una matriz) en una cadena y devuelve esta cadena. }
reverseString ("hola");
# 254 Factorializar un número
Cálculo del factorial de un número entero Si se utiliza la letra n para representar un número entero, el factorial representa el producto de todos los números enteros menores o iguales que N.
function factorialize (num) {// Método recursivo
// Por favor escriba su código aquí
if (num <0)
{ return -1; } else if (num === 0 || num === 1) { return 1; } else if (num> 1) { return (num * factorialize (num-1)); }
}
factorialize (5);
// método while método de iteración
function factorialize (num) {// while
// Por favor escriba su código aquí
var resule = num;
if (num <0) { return -1; } else if (num === 0 || num === 1) { return 1; } else while (num> 1) { --num; resule * = num; } return resule; }
factorialize (5);
// para el método de recorrido de bucle
function factorialize (num) {// while
// Por favor escriba su código aquí
if (num <0) { return -1; } else if (num === 0 || num === 1) { return 1; } else { para (var i = num-1; i> 1; i -) { num = num * i; } return num; }
}
factorializar (5);
# 255 Comprueba si hay palíndromos
Si la cadena dada es un palíndromo, regresa true
, de lo contrario, regresa false
.
Si una cadena ignora la puntuación, las mayúsculas y minúsculas y los espacios, y se lee exactamente igual que al revés, entonces la cadena es palíndromo (palíndromo).
Tenga en cuenta que debe eliminar la puntuación y los espacios adicionales en la cadena, y luego convertir la cadena a minúsculas para verificar si la cadena es un palíndromo.
El valor del parámetro de la función puede ser "racecar"
, "RaceCar"
y "race CAR"
.
Cuando no pueda completar el desafío, recuerde usar el gran movimiento 'Leer-Buscar-Preguntar'.
function palindrome (str) { // Por favor escriba su código aquí var oldstr = str.replace (/ [-,., _, /, (,), \,,:,] / g, ''). toLowerCase () ; // Elimina regularmente los espacios y la puntuación var newstr = oldstr.toLowerCase (). Split (''). Reverse (). Join (''); // Invierte el orden alfabético de las palabras return (newstr == = oldstr) ; }
palíndromo ("ojo");
# 256 Encuentra la palabra más larga en una cadena
Encuentra la palabra más larga
Encuentra la palabra más larga de la oración y devuelve su longitud.
El valor de retorno de la función debe ser un número.
Cuando no pueda completar el desafío, recuerde usar el gran movimiento 'Leer-Buscar-Preguntar'.
Aquí hay algunos recursos para ayudarlo:
Usando el método de matriz sort (), el método sort () necesita aceptar una función de comparación que compara dos valores y luego devuelve un número para ilustrar el orden relativo de los dos valores
function findLongestWord (str) { // Por favor escriba su código aquí nt var array = str.split (''); array.sort (function (f, n) { return n.length-f.length; }); return array [0] .longitud; }
findLongestWord ("El zorro marrón rápido saltó sobre el perro perezoso");
// El segundo es un método más común, primero divide la matriz en la unidad más pequeña y luego compara.
function findLongestWord (str) { var array = str.split (''); // Divide oraciones en palabras y guárdalas en la matriz array var result = 0; // Establece primero una pequeña meta para (var i = 1; i <array.length; i ++) {// recorre la palabra if (result <= array [i] .length) {// compara la longitud de la palabra con el resultado result = array [i] .length; // asigna el longitud de la palabra larga hasta el resultado y continuar Siguiente comparación } } devolver resultado; // devolver resultado }
# 257 Título caso a oración
Ponga en mayúscula la primera letra de la palabra en la oración
Asegúrese de que la primera letra de cada palabra de la cadena esté en mayúscula y el resto en minúsculas.
Lo mismo es cierto para conectores como 'el' y 'de'.
Cuando no pueda completar el desafío, recuerde usar el gran movimiento 'Leer-Buscar-Preguntar'.
Aquí hay algunos recursos para ayudarlo:
string.split ()
function titleCase (str) { // Por favor escriba su código aquí var newStr = str.toLowerCase (). split (''); // Al principio, cuando asigne valores iniciales, primero convierta las letras mayúsculas a minúsculas. for (var i = 0; i <newStr.length; i ++) {// Recorrer newStr [i] = newStr [i] .charAt (0) .toUpperCase () + newStr [i] .slice (1); / / Desde el primer elemento, convierta la cadena a mayúsculas, luego agregue la matriz existente para devolver un elemento específico } return newStr.join (""); // Ponga todos los elementos de la matriz en la cadena }
titleCase ("Soy una pequeña tetera");
# 258 Devuelve los números más grandes en matrices
Encuentre el número más grande en varias matrices
function largerOfFour (arr) { // por favor escriba su código aquí var newArr = []; for (var i = 0; i <arr.length; i ++) // recorrer { newArr.push (Math.max .apply ( Math, arr [i])); // Hacer un valor máximo en los datos en Math.max // y Math.max es compatible con Math.max (arr1, arr2), no es compatible con Math.max ([arr1, arr2] ), solo aplique para admitir Math.max (null, arr [i]). } return newArr; }
más grande de Cuatro ([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
# 259 Confirma el final
Compruebe el final de la cadena para determinar si una cadena (cadena) termina con la cadena especificada (destino).
function confirmEnding (str, target) { // Por favor escriba su código aquí if (str.substr (str.length-target.length) == target) // Tome el último carácter del primer elemento y el valor inicial Si es correcto, devuelve verdadero; de lo contrario, devuelve falso { devolver verdadero; } else { devolver falso; } }
confirmEnding ("Bastian", "n");
# 260 Repite una cuerda repite una cuerda
Repita la cadena de salida
(Lo importante se dice 3 veces)
Una cadena repetida num
veces especificada , si es num
un número negativo o una cadena vacía.
function repeat (str, num) { // Por favor escribe tu código aquí var string = ""; // Primero crea un carácter nulo para (var i = 0; i <num; i ++) // Recorre una vez, cada Add str { string = string + str; } if (num <0) {// devuelve un carácter nulo cuando es menor que 0 return ""; } return string; }
repetir ("abc", 3);
# 261 Truncar una cadena
Truncar cadena
(Usa Ryze para cortar la retirada opuesta)
Si la longitud de los parámetros de la cadena supera la num
longitud especificada , coloque las partes innecesarias que ...
están representadas.
Recuerde, los tres puntos insertados al final de la cuerda también se incluyen en la longitud de la cuerda.
Sin embargo, si el parámetro especificado es num
menor o igual a 3, los tres puntos agregados no se incluirán en la longitud de la cadena.
function truncate (str, num) { var length = str.length; // Primero juzga la longitud de str var string = ''; // Un contenedor de string vacío if (num <length) {// Si el valor de num es menor que str, interceptar Valor de carácter if (num <= 3) {// Si el parámetro especificado num es menor o igual a 3, los tres puntos agregados no se incluirán en la longitud de la cadena. string = str.slice (0, num) + '...'; } else { string = str.slice (0, num-3) + '...'; } return string; } return str; }
truncar ("A-tisket a-tasket Una canasta verde y amarilla", 11);
# 262 Mono grueso
El mono come plátano y divide la matriz.
(Los monos comen plátanos, pero se parten en varios trozos para comer)
Para una matriz arr
de acuerdo con el tamaño especificado de la matriz size
se divide en varios bloques de matriz.
Por ejemplo: chunk ([1,2,3,4], 2) = [[1,2], [3,4]];
trozo ([1,2,3,4,5], 2) = [[1,2], [3,4], [5]];
function chunk (arr, size) { // Por favor, escriba su código aquí var newarr = []; // Primero proporcione una matriz vacía para (var i = 0; i <arr.length; i + = size) {/ / Loop traversal , si i es menor que el valor inicial de la función, haz un ciclo newarr.push (arr.slice (i, i + size)); // Intercepta desde 0 hasta el final inicial de la asignación de función, si i es mayor que arr.length, End the loop } return newarr; // Obtiene el valor y devuelve la matriz }
fragmento (["a", "b", "c", "d"], 2);
# 263 Película Slasher
Matriz truncada
Devuelve los n
elementos restantes de una matriz después de truncar un elemento, el truncamiento comienza en el índice 0.
function slasher (arr, howMany) { // Por favor escriba su código aquí arr.splice (0, howMany); // El método cambia el contenido de una matriz eliminando elementos existentes y / o agregando elementos nuevos return arr; }
slasher ([1, 2, 3], 2);
# 264 Mutaciones
Si el primer elemento de cadena de la matriz contiene todos los caracteres del segundo elemento de cadena, la función devuelve verdadero.
Por ejemplo, ["hello", "Hello"]
debería devolver verdadero, porque todos los caracteres de la segunda cadena se pueden encontrar en la primera cadena ignorando las mayúsculas y minúsculas.
["hello", "hey"]
Debería devolver falso porque la cadena "hola" no contiene el carácter "y".
["Alien", "line"]
Debería devolver verdadero, porque todos los caracteres en "línea" se pueden encontrar en "Alien"
function mutation (arr) { // Marque si la matriz de la segunda cadena se puede encontrar en la primera cadena var flag = true; for (var j = 0; j <arr [1] .length; j ++) { // Traverse los caracteres en la segunda cadena en arr en la primera cadena en la matriz arr // indexOf () distingue entre mayúsculas y minúsculas, y cambia a minúsculas antes de atravesar toLowerCase () //str.indexOf () devuelve caracteres La posición donde la cadena primero aparece, o -1 si no aparece if (arr [0] .toLowerCase (). indexOf (arr [1] .charAt (j) .toLowerCase ()) == - 1) flag = false; } if (flag == verdadero) devuelve verdadero; de lo contrario, devuelve falso; }
mutación (["hola", "heo"]);
# 265 Falsy Bouncer
elimina todos los valores falsos en la matriz.
En JavaScript, los valores falsos son falso, nulo, 0, "", indefinido y NaN (no es un número).
Nota:
arr.filter (función)
- Finalmente devuelve una matriz recién creada, la matriz original no se ve afectada
- función es una función de prueba, use el método de función para probar cada carácter en arr; si la prueba de función pasa, devuelve verdadero, entonces el elemento se agrega a la matriz recién creada
- Para booleano (elemento) , cuando elemento = falso, 0, "", indefinido, NAN, todos devuelven falso
function bouncer (arr) { // Por favor, escriba su código aquí // Si el elemento de detección es falso, nulo, 0, "", indefinido, NAN (no es un número), devuelva falso; de lo contrario, devuelva verdadero función isTure (elemento) { return Boolean (element); } // Usa la cadena que devuelve verdadero a través de la función isture en arr para formar una nueva matriz, y devuelve false arr = arr.filter (isTure); return arr; }
gorila ([7, "comió", "", falso, 9]);
# 266 Busca y destruye
Destruye la matriz
¡El mortero de Jinks!
Implemente una función de destrucción, el primer parámetro es la matriz que se va a destruir y los parámetros restantes son los valores que se van a destruir.
argumentos
- Objeto de función implícito
- No es necesario especificar explícitamente el nombre del parámetro, puede acceder a él directamente
- El objeto de argumentos no es una matriz real, es similar a una matriz, pero no tiene los atributos y métodos específicos de la matriz. Además de la longitud, puede llamar a argument.length
- Aquí no tengo muy claro el uso del objeto implícito, preste atención más tarde
function destroyer (arr) { // por favor escribe tu código aquí // los argumentos pueden capturar el arreglo arr, aquí es similar a arr // crea un arreglo vacío var newarr = []; // forma uno con los valores a ser destruido Nueva matriz newarr for (var j = 1; j <argumentos.longitud; j ++) { newarr.push (argumentos [j]); } // Devuelve caracteres que no existen en newarr, es decir, el último carácter función retenida notDestroyer (elemento) { return newarr.indexOf (elemento) <0; } var temp = arr.filter (notDestroyer); return temp; }
destructor ([1, 2, 3, 1, 2, 3], 2, 3);
# 267 ¿A dónde pertenezco?
¿Dónde estoy?
Primero ordene la matriz, luego busque la posición del valor especificado en la matriz y, finalmente, devuelva el índice correspondiente a la posición.
Ejemplo: where([1,2,3,4], 1.5)
debería volver 1
. Porque se convierte después de 1.5
insertarse en la matriz , y el valor de índice correspondiente es .[1,2,3,4]
[1,1.5,2,3,4]
1.5
1
De la misma forma, where([20,3,5], 19)
deberá devolverse 2
. Debido a que la matriz se ordenará primero [3,5,20]
, se volverá después de 19
insertarla en la matriz , y el valor de índice correspondiente será .[3,5,20]
[3,5,19,20]
19
2
function where (arr, num) { // Por favor escriba su código aquí // Inserte el valor en la primera matriz push en la matriz push arr.push (num); // Ordenar por orden de caracteres function compareNumbers (a, b) { return ab; } // Clasificación de letras arr.sort (compareNumbers); // Devuelve la posición del índice en la matriz de valores especificada return arr.indexOf (num); }
donde ([40, 60], 50);
# 268 Cifrado Caesars
Código César
(Que Dios pertenezca a Dios, César pertenezca a César)
Vamos a presentar el cifrado César Caesar cipher
que es popular en todo el mundo , también llamado cifrado por turno.
La contraseña de cambio significa que las letras de la contraseña se cambiarán en la cantidad especificada.
Un caso común es la contraseña ROT13 , donde las letras se desplazarán 13 posiciones. From'A '↔'N', 'B' ↔'O ', etc.
function rot13 (str) {// LBH QVQ VG!
// Por favor escriba su código aquí
// Cree una matriz
var newstr = [];
for (var i = 0; i <str.length; i ++) { / / Si el las letras mayúsculas son de AM, charCodeAt (i) +13 if (str.charAt (i)> = 'A' && str.charAt (i) <= 'M') { newstr.push (String.fromCharCode (str.charCodeAt ( i) +13)); } // Si las letras mayúsculas son de NZ, charCodeAt (i) -13, porque solo se cambian 26 letras mayúsculas en caso contrario si (str.charAt (i)> = 'N' && str.charAt ( i) <= 'Z') { newstr.push (String.fromCharCode (str.charCodeAt (i) -26 + 13)); } // Los caracteres que no sean letras mayúsculas permanecen sin cambios, insertar en la matriz else { newstr.push (str.charAt (i)); } }
return newstr.join ("");
}
rot13 ("SERR PBQR PNZC"); // Puedes modificar esta línea para probar tu código
#
Conceptos básicos de JavaScript: uso de operadores ternarios
Los operadores condicionales (también llamados operadores ternarios) son tan útiles como las expresiones if-else escritas en una sola línea
La sintaxis es la siguiente:
function checkEqual (a, b) {
return (a! = b? falso: verdadero);
}
checkEqual (1, 2);