Je lis le code source de jQuery. Dans la fonction de jQuery.mergepourquoi jQuery.merge définit la longueur de la valeur de retour à la main?
merge: function(first, second) {
var i = first.length,
j = 0;
if (typeof second.length === "number") {
for (var l = second.length; j < l; j++) {
first[ i++ ] = second[ j ];
}
} else {
while (second[j] !== undefined) {
first[ i++ ] = second[ j++ ];
}
}
first.length = i;
return first;
}
Il y a deux choses que je ne comprends pas:
- Pourquoi est-il vérifié le type de second.length, mais pas vérifier le type de first.length?
- Puisque la longueur de Array est augmentée automatiquement, pourquoi avons-nous besoin de régler la longueur à la main?
Merci.
J'ai essayé de fusionner un tableau à un tableau Associatif, mais le La longueur du résultat est égale à la longueur du tableau. En outre, je ne pense pas que Merge puisse gérer les tableaux associatifs, car il existe une autre fonction "extend" conçue pour faire ce travail. – liuyl