La comunitat xinesa FreeCodeCamp respon preguntes i notes (quarta part, operacions de matriu)
Freecodecamp Chinese Community Answer Questions
La comunitat xinesa FreeCodeCamp respon preguntes i notes
-
-
- 1. Trunqueu una cadena (cadena truncada)
- En segon lloc, Chunky Monkey (split array)
- Tres, Slasher Flick (matriu truncada)
- 4. Mutacions (mètode indexOf ())
- Cinc, mètode Falsy Bouncer (Filter ())
- Sis, cerca i destrueix (arguments, filtre ())
- 7. On pertanyo (ordenar matriu i inserir elements per retornar el valor de l'índex)
- 8. Xifratge Cèsars
-
1. Trunqueu una cadena (cadena truncada)
Truncar la cadena
(Utilitzeu Ritz per tallar la sortida oposada)
Si la longitud de la cadena de caràcters és més gran que el paràmetre num especificat, la part addicional es representa amb ....
Recordeu, els tres punts inserits al final de la corda també es compten en la longitud de la corda.
Tanmateix, si el paràmetre num especificat és inferior o igual a 3, els tres punts afegits no es compten a la longitud de la cadena.
Quan no pugueu completar el repte, recordeu d'obrir el gran 'Llegir-Cercar-Preguntar'.
/* Personal idea: For the given string, keep the first num bits, and the rest are replaced by... If num 3, the first num-3 bits are reserved, and the rest are replaced with ... If num >= str.length, return str itself */ function truncate(str, num) { var newString = '' //If num<=3, the first num bits are reserved, and the rest are replaced by... if(num <= 3) { newString = str.slice(0, num).concat('...') return newString } //If num >= str.length, return str itself if(num >= str.length) { newString = str return newString } //If num> 3, the first num-3 bits are reserved, and the rest are replaced by... else if(num > 3) { newString = str.slice(0, num - 3).concat('...') return newString } } truncate('A-tisket a-tasket A green and yellow basket', 50)
En segon lloc, Chunky Monkey (split array)
Mico menjant plàtan, dividint la matriu
(El mico menja plàtans, però es divideix en diverses seccions per menjar)
Divideix un arr de matriu en diversos blocs de matriu segons la mida de mida de matriu especificada.
Per exemple: tros ([1,2,3,4], 2) = [[1,2], [3,4]]
tros ([1,2,3,4,5], 2) = [[1,2], [3,4], [5]]
Quan no pugueu completar el repte, recordeu d'obrir el gran 'Llegir-Cercar-Preguntar'.
Punts clau: Array.slice () i Array.push ()
/* Personal idea: divide the array into sub-arrays according to the given size, and finally return the result as a new array */ function chunk(arr, size) { // Please write your code here var newArray = [] //var newArrayLength = Math.floor(arr.length / size) + arr.length% size //Calculate the length of the new array //return newArrayLength for(var i=0 i return newArray } chunk(['a', 'b', 'c', 'd'], 3) //[['a', 'b', 'c'], ['d']] chunk(['a', 'b', 'c', 'd'], 2) //[['a', 'b'], ['c', 'd']]
Tres, Slasher Flick (matriu truncada)
Trunca la matriu
Retorna els elements restants d'una matriu després de truncar n elements; la truncació comença a l'índex 0.
Quan no pugueu completar el repte, recordeu d'obrir el gran 'Llegir-Cercar-Preguntar'.
Aquests són alguns recursos que us són útils:
Array.slice ()
Array.splice ()
Punts clau: el mètode splice ()
El mètode splice () afegeix / elimina elements de la matriu i, a continuació, retorna els elements suprimits.
Aquest mètode canviarà la matriu original.
El mètode splice () suprimeix zero o més elements començant per l’índex i substitueix aquests elements suprimits per un o més valors declarats a la llista de paràmetres.
Si l'element s'elimina de arrayObject, la matriu retornada conté l'element suprimit.
1. Esborra: s'utilitza per suprimir elements, dos paràmetres, el primer paràmetre (la posició per suprimir el primer element) i el segon paràmetre (el nombre d'elements a suprimir).
2. Inseriu-inseriu qualsevol element a la posició especificada de la matriu. Tres paràmetres, el primer paràmetre (inserir posició), el segon paràmetre (0), el tercer paràmetre (inserir element).
3. Substitució: inseriu qualsevol element a la posició especificada de la matriu i suprimiu qualsevol nombre d'elements al mateix temps, tres paràmetres. El primer paràmetre (posició inicial), el segon paràmetre (nombre d’elements suprimits) i el tercer paràmetre (inseriu qualsevol nombre d’elements).
//Return the remaining elements after an array is truncated by n elements. Truncation starts at index 0. function slasher(arr, howMany) { // Please write your code here var newArray = [] if(howMany > arr.length) { //If the given length is greater than the length of the array, return an empty array newArray = [] return newArray } newArray = arr.slice(howMany) return newArray } slasher([1, 2, 3], 2)
4. Mutacions (mètode indexOf ())
Compareu les cadenes
(El gripau pot menjar companys i oponents)
Si el primer element de cadena de la matriu conté tots els caràcters del segon element de cadena, la funció torna cert.
Per exemple, ['hello', 'Hello']
Hauria de tornar true true
, Com que ignorant majúscules i minúscules, tots els caràcters de la segona cadena es poden trobar a la primera cadena.
['hello', 'hey']
Hauria de tornar false
A causa de la cadena 'hello'
No conté el caràcter 'y'.
['Alien', 'line']
Hauria de tornar true
, perquè tots els caràcters de la línia es poden trobar a 'Alien'.
Quan no pugueu completar el repte, recordeu d'obrir el gran 'Llegir-Cercar-Preguntar'.
Punts clau: mètode string.indexOf ()
El mètode indexOf () retorna la primera aparició d'un valor de cadena especificat en una cadena.
Si no es troba cap cadena coincident, es retorna -1.
Nota: El mètode indexOf () distingeix entre majúscules i minúscules.
mètode string.lastIndexOf ()
El mètode lastIndexOf () retorna l'última aparició d'un valor de cadena especificat i cerca cap enrere des de la posició especificada en una cadena.
//If the first string element of the array contains all the characters of the second string element, the function returns true. function mutation(arr) { var newArr1 = arr[0].toLowerCase()//Convert to lower case var newArr2= arr[1].toLowerCase() //Determine whether all elements in the second string can be found in the first string for(var i=0 i if(newArr1.indexOf(newArr2[i]) == -1) { return false } } return true } mutation(['hello', 'hey']) //false mutation(['Mary', 'Aarmy']) //true
Cinc, mètode Falsy Bouncer (Filter ())
Valors falsos de la matriu de filtres
(True and False Beauty Monkey King)
Suprimiu tots els valors falsos de la matriu.
A JavaScript, els valors falsos són false, null, 0, '', undefined, and NaN.
Quan no pugueu completar el repte, recordeu d'obrir el gran 'Llegir-Cercar-Preguntar'.
Aquests són alguns recursos que us són útils:
Objectes booleans
Array.filter ()
Mètode Filter ():
El mètode filter () crea una nova matriu que conté tots els elements de la prova implementada per la funció proporcionada.
filter () executa la funció especificada (devolució de trucada) una vegada per a cada element de la matriu i crea una nova matriu; l’element de matriu és el valor de retorn de true quan s’executen totes les funcions de devolució de trucada Elements de la matriu original. Només executa la funció especificada als elements no buits de la matriu. Els elements que no s’han assignat o que s’han suprimit s’ignoraran. Al mateix temps, la matriu de nova creació no contindrà aquests elements.
La funció de devolució de trucada pot tenir tres paràmetres: l'element actual, l'índex de l'element actual i l'objecte de matriu actual.
var words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'] const result = words.filter(word => word.length > 6) console.log(result) //['exuberant', 'destruction', 'present']
//Filter array false values. In JavaScript, false values are false, null, 0, '', undefined and NaN. function bouncer(arr) { // Please write your code here return arr.filter(Boolean) } bouncer([7, 'ate', '', false, 9])
Sis, cerca i destrueix (arguments, filtre ())
Destrueix la matriu
El morter de Jinx!
Implementar una funció de destructor. El primer paràmetre és la matriu que es destrueix i la resta de paràmetres són els valors que es destruiran.
Quan no pugueu completar el repte, recordeu d'obrir el gran 'Llegir-Cercar-Preguntar'.
Aquests són alguns recursos que us són útils:
Arguments object Array.filter()
//Delete the specified value in the array, and then return a new array function destroyer(arr) { // Please write your code here //Arguments object check the number of parameters var numberOfArguments = arguments.length //return numbebrOfArguments //3 //Move the content after the first parameter into a new array var newArray1 = [] for(var i=1 i<arguments.length i++) { newArray1.push(arguments[i]) } //return newArray1 //[2, 3] //Filter out the elements in the new array newArray1 in the first array and return a new array var newArray2 = [] newArray2 = arr.filter(function(arr) { return newArray1.indexOf(arr) <0 }) return newArray2 } destroyer([1, 2, 3, 1, 2, 3], 2, 3) //[1, 1]
7. On pertanyo (ordenar matriu i inserir elements per retornar el valor de l'índex)
Ordeneu la matriu i cerqueu l’índex de l’element
On sóc?
Ordeneu primer la matriu, després cerqueu la posició del valor especificat a la matriu i, finalment, torneu l’índex corresponent a la posició.
Exemples: where([1,2,3,4], 1.5)
Hauria de tornar 1
. Com que 1.5 s’insereix a la matriu [1,2,3,4] i es converteix en [1,1,5,2,3,4], i el valor de l’índex corresponent a 1,5 és 1.
De la mateixa manera, where([20,3,5], 19)
Hauria de tornar 2
. Com que la matriu s'ordenarà com a [3,5,20] primer, s'insereix 19 a la matriu [3,5,20] i després es converteix en [3,5,19,20], i el valor d'índex corresponent de 19 és 2.
Quan no pugueu completar el repte, recordeu d'obrir el gran 'Llegir-Cercar-Preguntar'.
// Sort the array first, then find the position of the specified value in the array, and finally return the index corresponding to the position. function where(arr, num) { //Array sort and return a new array var newArray = [] newArray = arr.sort(function(a, b) { return a - b }) //return newArray [2, 5, 6, 12] //Insert num and return the correct index if(num > newArray[newArray.length - 1]) { return newArray.length } for(var i=0 iif(newArray[i] >= num) { return i } } } where([2, 12, 6, 5], 8) //3
8. Xifratge Cèsars
Codi Cèsar
(Que Déu torni a Déu, Cèsar torni a Cèsar)
Introduïm la contrasenya Caesar, que és popular a tot el món Caesar cipher
, també coneguda com a contrasenya de canvi.
Maj de contrasenya significa que les lletres de la contrasenya es canviaran segons el número especificat.
Un cas habitual és la contrasenya ROT13, on les lletres es desplacen en 13 posicions. Des de ‘A’ ↔ ‘N’, ‘B’ ↔ ‘O’, etc.
Escriviu una funció ROT13 per introduir la cadena xifrada i emetre la cadena desxifrada.
Totes les lletres estan en majúscula. No converteixis caràcters que no siguin alfabètics (per exemple: espais, puntuació). Si us trobeu amb aquests personatges especials, ometeu-los.
Quan no pugueu completar el repte, recordeu obrir un gran moviment 'Read-Search-Ask'
。
Aquests són alguns recursos que us són útils:
El mètode charCodeAt () retorna un enter entre 0 i 65535, que representa la unitat de codi UTF-16 en un índex donat
String.fromCharCode ()
static String.fromCharCode()
El mètode retorna una cadena creada mitjançant la seqüència especificada de valors Unicode
//String.charCodeAt() returns the ASCII code value corresponding to the character at the specified index //String.fromCharCode(num1, num2, ..., numn) returns the string corresponding to the given ASCII code //Write a ROT13 function to realize input of encrypted string and output of decrypted string. function rot13(str) { // LBH QVQ VG! // Please write your code here //arr1 = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'] //arr2 = ['N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M'] var arr = str.split('') //eturn arr // ['S','E','R','R','','P','B','Q','R','','P','N','Z','C'] for(var i=0 i var num1= arr[i].charCodeAt(0) //The CII code value of the input encrypted character if(num1>=65 && num1<=90) { //Determine whether it is a character if(num1>=65 && num1<=77) { arr[i] = String.fromCharCode(num1+13) }else if(num1>=78&& num1<=90) { arr[i] = String.fromCharCode(num1-13) } }else { //If it is not a string, it will not change arr[i] = arr[i] } } str = arr.join('') return str } rot13('SERR PBQR PNZC') // You can modify this line to test your code