Qualche giorno fa sono incappato in un Quiz Javascript che mi ha incuriosito, anche perchè per risolverlo era richiesto l'uso di un metodo che solitamente non utilizzo nei miei script, il metodo splice.
Per chi non sapesse come funziona tale metodo scrivo di seguito un esempio commentato in modo da poter dare delle indicazioni su come approcciarsi alla risoluzione dell'indovinello. In sostanza il metodo splice cambia il contenuto di un array rimuovendovi e/o aggiungendovi elementi secondo la seguente sintassi:
// mioArray e' l'array di esempio
var mioArray = ['michele', 'roberto', 'marco', 'andrea'];
// il comando seguente rimuove un elemento in posizione 2 e vi aggiunge l'elemento 'pippo'
var mioArraySec = mioArray.splice(2, 1, 'pippo');
// mioArray ora e' ['michele', 'roberto', 'pippo', 'andrea']
// mioArraySec invece e' ['marco']
Il primo parametro indica il punto di partenza (la posizione dell'elemento) dal quale iniziare a modificare l'array.
Il secondo parametro indica il numero di elementi che saranno eliminati (se ha valore 0 non saranno eliminati elementi, se invece viene omesso il suo valore sarà dalla formula: lunghezza array - posizione di partenza).
Il terzo parametro, che può essere ripetuto, indica gli elementi da aggiungere all'array nella posizione specificata dal primo elemento. Se il terzo parametro viene omesso il risultato del metodo sarà solo l'eliminazione degli elementi dall'array.
Il metodo restituisce gli elementi eliminati dall'array. Se nessun elemento è stato eliminato l'array risultante dall'operazione sarà vuoto.
Con queste premesse veniamo adesso all'"indovinello" in Javascript:
// Javascript Quiz
// hai a disposizione la seguente funzione e la variabile denominata tt
function add() { return ["a","b"]; }
var tt = [1,2,3,4];
// Quello che devi ottenere è il seguente risultato
// [1,'a','b',2,3,4]
// Per farlo dovrai modificare la variabile tt usando solo il metodo splice.
// Riesci a risolverlo?
Come specificato dovrai ottenere il risultato richiesto, ovvero un array formato da [1,'a','b',2,3,4], modificando tt tramite solo ed esclusivamente il metodo splice.
Buon diverimento.
PS: Nel caso tu decida di gettare la spugna potrai trovare la mia soluzione nel seguente JSFiddle (probabilmente ce ne sono altre e sicuramente anche più eleganti della mia ma tra quelle con cui ho avuto modo di confrontarmi nessuna usa SOLO il metodo splice):
Nessuno ha ancora commentato questo articolo, fallo tu per primo!
Scrivi un Commento