2010-06-18 16 views
5

vedo codice come questo in tutto il webPerché vedo la creazione di matrici javascript con string.split()?

var days= "Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "); 

perché farlo, invece di

var days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]; 

Non credo che la pigrizia o ignoranza non ha nulla a che fare con esso. Questo è fuori da jQuery 1.4.2

props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" ") 

Lo fanno dappertutto.

+4

Pigrizia ...? :-) –

+0

Pigrizia? Non è sicuramente buono per la velocità, e personalmente non penso che migliori la leggibilità. – MvanGeest

+1

Questo è letteralmente * troppo intelligente *. –

risposta

11

Penso che sia perché non devi citare e separare ogni stringa dell'array. Allo stesso modo, in perl molte persone usano qw(a b c d e f g) invece di ('a', 'b', 'c', 'd', 'e', 'f', 'g'). Quindi il beneficio è duplice:

  1. È più veloce e più facile scrivere e modificare (può ovviamente essere debattato).
  2. È più piccolo bit per bit, quindi risparmi una certa larghezza di banda.

vedere la dimensione bit:

var days= "Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "); 
// 81 characters 

vs

var days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]; 
// 91 characters 
+0

+1, mi hai battuto :-) –

+0

In realtà, sarebbe solo 3 byte più piccoli (dal momento che useresti un minificatore che non significa spazi bianchi non necessari), ma certo, è ancora una parte della larghezza di banda salvata suppongo ... – Blixt

+0

I mi piace. Nei miei test, il modo split split richiede circa 1 volta e mezza il tempo di esecuzione, ma è davvero misurabile solo su migliaia di iterazioni. IMO non è più facile da leggere, ma rende il file più piccolo ed è più veloce da scrivere. – Matthew

0

Può anche avere senso se le stringhe iniziali hanno citazioni o doppi apici nel testo.

0

"81 caratteri e 91 caratteri" < < Bella osservazione ma di nuovo aggiunge poco tempo di elaborazione per convertire String in array e cosa succede se a volte è necessario aggiungere qualcosa che contiene 2 parole.

Potrebbe essere come questo stile di codifica.

IDK

0

Si potrebbe avere 20 stringhe dei nomi dei giorni della settimana in 20 lingue, e utilizzare una sola divisione per restituire la matrice corretta per l'utente.

Problemi correlati