it.hideout-lastation.com
Paradiso Per Designer E Sviluppatori


3 cose che non sai su array di JavaScript

Gli array sono una caratteristica ampiamente utilizzata dei linguaggi di programmazione; sono variabili speciali che possono essere utilizzate per memorizzare più valori allo stesso tempo. Tuttavia, quando si tratta di JavaScript, per quanto sia facile da imparare, c'è sempre altro da esplorare.

In questo post, daremo un'occhiata a tre funzionalità meno note ma importanti degli array JavaScript che potreste non aver conosciuto prima.

1. Aggiungi proprietà personalizzate alle matrici

Se doveste setacciare Internet alla ricerca di una definizione completa di array di JavaScript, troverete che quasi ogni sorgente senza errori elencherà array come ciò che è realmente, un oggetto .

In effetti, quasi tutto ciò che trattiamo in JavaScript si rivelerà essere un oggetto . Esistono due tipi di tipi di dati in JavaScript, primitive e oggetti, ma le primitive sono sempre racchiuse negli oggetti .

Array, Function, Date, ecc. Sono oggetti JavaScript predefiniti che hanno metodi incorporati, proprietà e la loro sintassi standardizzata.

Gli array JavaScript possono avere tre diversi tipi di proprietà :

  1. Gli indici di un array sono anche proprietà
  2. Proprietà incorporate
  3. Proprietà personalizzate che puoi aggiungere da solo

I primi due sono più noti, è possibile utilizzarli tutti i giorni, ma vediamoli rapidamente prima di passare a come è possibile aggiungere la propria proprietà personalizzata a un array.

Indici come proprietà

Gli array JavaScript usano la sintassi della parentesi quadre, come var ary = ["orange", "apple", "lychee"]; .

Gli indici degli elementi dell'array sono fondamentalmente proprietà in cui i nomi delle proprietà sono sempre interi non negativi .

La coppia indice-elemento di un array è simile alla coppia chiave-valore di un oggetto.

Gli indici sono una caratteristica unica dell'oggetto Array e, a differenza delle altre proprietà built-in, possono essere impostati con la sola sintassi delle parentesi, come ad esempio ary[3] = "peach"; .

Proprietà incorporate

Gli array hanno anche proprietà built-in, come array.length . La proprietà length contiene un valore intero che indica la lunghezza di un array .

In generale, le proprietà built-in possono essere trovate frequentemente in oggetti JavaScript predefiniti come gli array. Insieme ai metodi integrati, aiutano a personalizzare gli oggetti generici in modo che gli oggetti siano adatti a esigenze diverse .

È possibile accedere alle proprietà integrate con la object.key o object["key"] . Quindi puoi anche scrivere ary["length"] per accedere alla lunghezza di un array.

Creare proprietà personalizzate per l'oggetto matrice

Ora parliamo di aggiungere le tue proprietà agli array . Le matrici sono oggetti predefiniti che memorizzano diversi tipi di valori in diversi indici.

Di solito non c'è molto bisogno di aggiungere proprietà personalizzate a un array; questo è uno dei motivi per cui ai principianti di solito non viene insegnata questa funzione. Infatti, se vuoi trattare un array come un oggetto normale aggiungendo coppie chiave-valore, potresti anche usare un oggetto normale per il tuo scopo . Ma questo non significa che non ci siano casi speciali in cui è possibile fare uso del fatto che un array è un oggetto, aggiungendo ad esso una o più proprietà personalizzate.

Ad esempio, puoi aggiungere una proprietà personalizzata a una matrice che identifica il "tipo" o la "classe" dei suoi elementi, come puoi vedere nell'esempio seguente.

 var ary = ["orange", "apple", "lychee"]; ary.itemClass = "frutti"; console.log (ary + "sono" + ary.itemClass); // "arancia, mela, litchi sono frutti" 

Si noti che la proprietà personalizzata che si aggiunge a un array è enumerabile, il che significa che verrà raccolto da cicli come l'istruzione for…in .

2. Passa attraverso gli elementi dell'array

Probabilmente dici "Lo so già", che è probabilmente vero, sai già come passare attraverso gli elementi dell'array. Ma è anche vero che dire "loop through array elements" è un po 'astratto, poiché ciò che effettivamente passiamo attraverso è l' indice dell'array .

Poiché gli indici di array sono costituiti solo da numeri interi non negativi, iteriamo un valore intero che inizia tipicamente da zero e termina sull'intera lunghezza dell'array, quindi utilizziamo il valore iterato per accedere all'elemento array in un determinato indice.

Tuttavia, poiché ECMAScript6, esiste un modo per eseguire il looping diretto dei valori dell'array senza preoccuparsi degli indici, e ciò può essere fatto usando il ciclo for…of ciclo for…of .

In un array, il ciclo for...of ciclo passerà attraverso gli elementi dell'array nell'ordine degli indici, in altre parole si prenderà cura di iterare sugli indici e ottenere un valore di array esistente in un determinato indice. Questo ciclo è l'ideale se si desidera eseguire il ciclo di tutti gli elementi dell'array e lavorare con essi.

 var ary = ["orange", "apple", "lychee"]; for (let item of ary) {console.log (item); } // "orange", "apple", "lychee" 

Per confronto, con il ciclo regolare for, otteniamo gli indici invece dei valori come output.

 var ary = ["orange", "apple", "lychee"]; for (var item = 0; item <ary.length; item ++) {console.log (item); } // 0, 1, 2 

3. Il numero di elementi non è la sua lunghezza

In genere, quando parliamo della lunghezza di un array, pensiamo che sia il numero di valore di un array o la lunghezza che abbiamo assegnato all'array manualmente. Tuttavia, in realtà, la lunghezza di un array dipende dal più grande indice esistente al suo interno.

La lunghezza è una proprietà molto flessibile . Se hai già corretto la lunghezza di un array in anticipo o meno, se continui ad aggiungere valori all'array, la sua lunghezza continua ad aumentare di conseguenza .

 var ary = []; ary.length = 3; console.log (ary.length); // 3 ary [5] = "abcd"; console.log (ary.length); // 6 

Nell'esempio sopra, puoi vedere che ho dato all'array un solo valore nell'indice 5, e la lunghezza diventa 6. Ora, se pensi che aggiungendo un valore nell'indice 5, l'array ha creato automaticamente gli indici da 0 a 4, quindi la tua ipotesi è errata . Non ci sono realmente indici esistenti da 0 a 4 in quella matrice. Puoi verificarlo usando l'operatore in.

 var ary = []; ary.length = 3; console.log (ary.length); // 3 ary [5] = "abcd"; console.log (ary.length); // 6 console.log (0 in ary); // falso 

La matrice è ciò che chiamiamo una matrice "sparsa", una matrice in cui gli indici non vengono creati continuamente e presentano lacune . L'opposto di una matrice "sparsa" è la matrice "densa" in cui gli indici esistono continuamente nella matrice e il numero di elementi è uguale alla length .

La proprietà length è anche in grado di troncare un array, assicurandosi che l'indice più alto presente nell'array sia sempre inferiore a se stesso, poiché la length è sempre numericamente maggiore dell'indice più alto per impostazione predefinita.

Nell'esempio seguente, puoi vedere come perdiamo l'elemento nell'indice 5 diminuendo la length dell'array ary .

 var ary = []; ary.length = 3; console.log (ary.length); // 3 ary [5] = "abcd"; console.log (ary.length); // 6 ary.length = 2; console.log (ary.length); // 2 console.log (ary [5]); // non definito 

Ulteriori letture

  • 10 termini JavaScript che dovresti conoscere ormai
  • 4 dichiarazioni Javascript non comuni ma utili che dovresti sapere
  • Ottimizzazione del codice con JS Hint - uno strumento per linting Javascript

Android Exploit "Cloak & Dagger" può rubare la tua password e altro

Android Exploit "Cloak & Dagger" può rubare la tua password e altro

Gli utenti Android potrebbero voler tenere d'occhio le app che scaricano sui loro dispositivi mentre i ricercatori hanno scoperto una serie di vulnerabilità nel sistema operativo che si basa su due permessi Android particolari per funzionare .Soprannominato Cloak & Dagger dal team di ricerca che ha scoperto la vulnerabilità, l'attacco si basa BIND_ACCESSIBILITY_SERVICE autorizzazioni SYSTEM_ALERT_WINDOW e BIND_ACCESSIBILITY_SERVICE per compromettere il sistema.

(Consigli tecnici e di design)

20+ strumenti per potenziare il tuo Dropbox

20+ strumenti per potenziare il tuo Dropbox

Dropbox è un'utile memoria cloud, ma la maggior parte degli utenti non si rende conto che può essere molto più potente se sai come sfruttarla al massimo . Se combinato con i servizi giusti, Dropbox può fare quasi tutto ciò che si può immaginare nello spazio cloud.Quindi, in questo post, sto elencando alcuni dei più famosi strumenti e servizi Dropbox che migliorano la potenza del tuo cloud preferito e ti permettono di fare molto di più con Dropbox . Contro

(Consigli tecnici e di design)