Voglio concatenare due array in uno. Ho trovato due funzioni possono fare il lavoro; uno è jQuery.merge()
e l'altro è il JavaScript incorporato nella funzione concat()
. Sembrano fare la stessa cosa, e ho trovato this. Dice: "Unisci crea un ingombro minore perché scorre attraverso l'array originale e aggiunge i nuovi elementi: Concat è una funzione Javascript integrata e dovrebbe essere più veloce, ma ha un ingombro maggiore". Non sono sicuro che questa affermazione sia vera e ci sono altre differenze?Qual è la differenza di bewteen jQuery.merge() e della funzione nativa JavaScript concat()?
risposta
Quella citazione è giusta e le due funzioni in realtà non fanno la stessa cosa, si uniscono due array in uno (primo parametro), e il secondo crea un nuovo array da entrambi.
Il "footprint" a cui si riferisce è la quantità massima di memoria che sarà in uso in qualsiasi momento. Poiché si fondono, si sta solo duplicando il secondo array, si dovrebbe usare meno memoria, poiché in qualsiasi momento, avrà solo bisogno di avere 2 array in memoria.
La funzione incorporata dovrà disporre di 3 matrici e il nuovo array dovrà avere le dimensioni di entrambi gli array concatenati.
Supponendo 1000 elementi di matrice A e B, e l'array fuso come C:
- unione dovrebbe 1000 + 1000 [a-> c] e 1000 [b] o 3000 punti.
- Concat avrebbe bisogno di 1000 + 1000 [c] e 1000 [a] e 1000 [b] o 4000 punti.
Meno memoria potrebbe essere più veloce se c'era molta memoria in uso, meno movimenti potrebbero essere anche più veloci.
http://jsperf.com/arrays-jquery-merge-vs-concat –
Nella situazione tmaster, ha usato jQuery.merge() per unire 2 arrays.Actually, JQuery.merge può usato per unire jQuery (in jQuery oggetto ha lunghezza prop troppo) con Array.Here è jQuery .merge() 's codice:
merge: function(first, second) {
var len = +second.length,
j = 0,
i = first.length;
for (; j < len; j++) {
first[ i++ ] = second[ j ];
}
first.length = i;
return first;
},
Così per oggetto JQuery ha proprietà di lunghezza, è possibile utilizzare merge per copiare il secondo oggetto attr JQuery come 0,1 al primo JQuery oggetto .Qui è un esempio:
pushStack: function(elems) {
// Build a new jQuery matched element set
var ret = jQuery.merge(this.constructor(), elems);
...
return ret;
},
this.constructor() restituisce un oggetto jQuery, anche elem. Ma concat non può, che può essere usato solo con Array.Questo è diff tra concat e JQuery.merge, anche.
Suppongo che sia possibile concatenare anche elementi tipo array ... – deostroll
- 1. qual è la differenza bewteen document.defaultView.getComputedStyle e window.getComputedStyle
- 2. Qual è la differenza tra il metodo + operator e concat() in JavaScript
- 3. Qual è la differenza tra "||" operatore e funzione concat in Oracle?
- 4. Qual è la differenza tra la funzione() {}() e function() {}()
- 5. Qual è la differenza tra "javascript :;" e "javascript:" nell'attributo href?
- 6. Qual è la differenza tra funzione e funzione
- 7. Sovrascrivere la funzione nativa?
- 8. Qual è la necessità della funzione javascript getUTCFullYear()?
- 9. Qual è la differenza tra la funzione exec() di RegExp e la funzione match() di String?
- 10. qual è la differenza tra:.! e: r !?
- 11. Qual è la differenza tra un'espressione di funzione e una dichiarazione in JavaScript?
- 12. Qual è la differenza tra $ get e $ find in JavaScript?
- 13. Qual è la differenza tra 'e "in? JavaScript
- 14. Qual è la differenza tra "$ variabile" e "variabile" - JavaScript - jQuery
- 15. Qual è la differenza tra 987 e (987) in JavaScript?
- 16. Qual è la differenza tra una subroutine e una funzione?
- 17. Qual è la differenza tra child e childNodes in JavaScript?
- 18. Qual è la differenza tra undefined e window.undefined in JavaScript?
- 19. Qual è la differenza tra slice() e substr() in JavaScript?
- 20. Qual è la differenza tra un algoritmo e una funzione?
- 21. Qual è la durata dell'animazione actionbar.show() e hide() nativa
- 22. Qual è la differenza tra il modello di funzione e la funzione di modello?
- 23. Qual è la differenza tra dict() e {}?
- 24. Qual è la differenza esatta tra app nativa e web in Azure Active Directory
- 25. Funzioni di auto-esecuzione JavaScript - Qual è la differenza?
- 26. Qual è la differenza tra struttura e ambito della funzione in C?
- 27. Differenza totale tra la normale funzione javascript e una calcolata
- 28. Qual è la differenza tra $ e $$?
- 29. Qual è la differenza tra {0} e +?
- 30. Qual è la differenza tra = e: =
Una differenza è che la funzione $ .merge() è distruttiva. Altera il primo parametro per aggiungere gli oggetti dal secondo. concat() no. Crea una nuova matrice. – j08691