Am dat peste asta Routech provocare și am rămas blocat de ceva timp gândindu-mă la cum aș putea găsi o modalitate de a o rezolva. Au menționat deja rezolvarea folosind Slice & Splice. Pe atunci eram confuz când să folosesc Slice și când să folosesc Splice.

Aici, voi împărtăși cum am rezolvat-o cu aceste metode.

Atât Slice, cât și Splice sunt utilizate pentru a manipula matrici. Să vedem cum o fac.

Felie:

Metoda Slice ia 2 argumente.

Primul argument: Specifică de unde ar trebui să înceapă selecția.

De exemplu:

var arr1 = [1,5,8,9];
arr1.slice(1); // [5,8,9]

Din primul index (5) va returna elementele.

Al doilea argument: Specifică la ce nivel trebuie să se afle punctul final. Dacă nu ați pus acest lucru în paranteză în timp ce apelați metoda slice, acesta va returna elementele de la indexul de pornire la sfârșitul matricei.

var arr1 = [1,5,8,9];
console.log(arr1.slice(1,3));
//[ 5, 8 ]

Dacă puneți un număr negativ în timp ce apelați, selecția va fi selectată de la sfârșitul matricei.

var arr1 = [1,5,8,9];
console.log(arr1.slice(-2));
//[ 8, 9 ]

Notă: Slice returnează întotdeauna elementele selectate din matrice.

Slice nu va schimba matricea. Matricea rămâne intactă. Vedeți exemplul de mai jos:

var arr1 = [1,5,8,9];
arr1.slice(2);
console.log(arr1);
// [ 1, 5, 8, 9 ]

Chiar dacă ați făcut unele modificări în matrice, aceasta nu o va afecta. Acesta va returna matricea originală așa cum este la început.

Lipitură:

Poate fi nevoie de mai multe argumente.

Asta inseamna,

Primul argument: Specifică în ce poziție ar trebui adăugat / eliminat un element nou sau un element existent. Dacă valoarea este negativă, poziția va fi numărată de la sfârșitul matricei.

Al doilea argument: Numărul de elemente care trebuie eliminate din poziția inițială. Dacă este 0, atunci niciun element nu va fi eliminat. Dacă nu este trecut, va șterge toate elementele din poziția inițială.

var arr1 = [1,5,8,9];
console.log(arr1.splice(1,2));
// [ 5, 8 ]

Al treilea argument -> al n-lea Argument: valoarea elementelor pe care doriți să le adăugați la matrice.

var arr1 = [1,5,8,9];
console.log(arr1.splice(1,2,'Hi','Medium'));
// [5,8]

S-ar putea să credeți că am adăugat „Bună”, „Mediu” la matrice, dar nu apare aici…. Dreapta?

Da, am consolat arr1.splice (1,2, „Bună”, „Mediu”).

Notă:

  • Splice va returna numai elementele eliminate din matrice.
  • Splice va schimba matricea originală
var arr1 = [1,5,8,9];
arr1.splice(1,2,'Hi','Medium');
console.log(arr1);
// [ 1, 'Hi', 'Medium', 9 ]

Sintaxa răspândirii:

Definiție: Permite extinderea unei iterabile, cum ar fi o expresie sau un șir de matrice, în locuri unde sunt așteptate zero sau mai multe argumente (pentru apeluri de funcții) sau elemente (pentru litere de matrice), sau o expresie de obiect să fie extinsă în locuri unde zero sau mai multe taste -perechi de valori (pentru literele obiectelor) sunt așteptate.

Să avem un exemplu în acest sens:

var arr1 = [1,3,6,7];
var arr2 = [5,arr1,8,9];
console.log(arr2);
// [ 5, [ 1, 3, 6, 7 ], 8, 9 ]

Vreau ca aceasta să fie într-o singură matrice de genul [ 5, 1, 3, 6, 7, 8, 9 ].

Pot folosi această sintaxă Spread pentru a rezolva acest lucru:

var arr1 = [1,3,6,7];
var arr2 = [5,...arr1,8,9];
console.log(arr2);
//[ 5, 1, 3, 6, 7, 8, 9 ]

O altă utilizare principală a Sintaxei Spread este copierea unui tablou:

var arr = [1, 2, 3];
var arr2 = arr;
arr2.push(4);

console.log(arr2);
// [ 1, 2, 3, 4 ]

console.log(arr);
// [ 1, 2, 3, 4 ]

Am adăugat “4” la arr2 numai. Dar a făcut schimbarea și la arr.

Putem rezolva acest lucru folosind Sintaxa Spread după cum urmează …

var arr = [1, 2, 3];
var arr2 = [...arr]; // like arr.slice()
arr2.push(4);

console.log(arr2);
// [ 1, 2, 3, 4 ]

console.log(arr);
// [ 1, 2, 3]

Vă puteți referi la MDN documentație pentru mai multe informații despre Sintaxa Spread.

Deci, să aruncăm o privire asupra provocării.

function frankenSplice(arr1, arr2, n) {

// It's alive. It's alive!

let array2Copy = [...arr2];

array2Copy.splice(n,0, ...arr1);

             //console.log(array2Copy);

return array2Copy;

}

frankenSplice([1, 2, 3], [4, 5, 6], 1);

Condiția principală a acestei provocări este „nu ar trebui să modificați arr1 / arr2 după ce funcția a fost executată”.

Deci, a creat un copiați matricea de arr2, și folosind îmbinarea metodă adăugați arh1 în interiorul copiei arh2 care este denumit ca array2Copy.

Concluzia finală:

-> Metoda Slice va

  • returnează elementele selectate din matrice
  • ia 2 argumente
  • nu modificați matricea originală

-> Metoda splice va

  • returnează elementele eliminate ale tabloului
  • luați mai multe argumente
  • modifică matricea originală

Acesta este primul meu tutorial despre codificare – mulțumesc pentru lectură! Feedback-ul dvs. mă va ajuta să-mi modelez abilitățile de codare și scriere.

Codificare fericită …!

Conectează-te cu mine Stare de nervozitate