Avant l'introduction, jetez une question: comment combiner plusieurs tableaux en un seul tableau?
Les séances de partage suivantes sont divisées en sous-sections suivantes:
1. Introduction de base à la méthode Concat
2. Sentez la méthode Concat à partir de l'exemple
1. Introduction de base à la méthode Concat
La méthode CONCAT est utilisée pour fusionner plusieurs tableaux. Il ajoute le membre du nouveau tableau à la fin du tableau d'origine, puis renvoie un nouveau tableau, le tableau d'origine reste inchangé.
console.log ([]. Concat ([1], [2], [3])); // [1, 2, 3] console.log ([]. Concat ([[1], [2], [3]]); // [1], [2], [3]] console.log ([]. Concat (4, [[5,6], [7]])); // [4, [5, 6], [7]]
Dans le code ci-dessus, la première valeur de retour consiste à fusionner un tableau vide avec trois tableaux [1], [2], [3] dans un tableau, renvoyant ainsi [1, 2, 3]. La seconde consiste à combiner un tableau vide avec un nombre bidimensionnel. Les membres du tableau bidimensionnel sont [1], [2], [3], donc [[1], [2], [3]] sont retournés. Notez que le tableau bidimensionnel retourné. Le troisième exemple est le même. La compréhension des concepts est très importante ici, c'est-à-dire pour ajouter des membres du nouveau tableau à la queue du tableau d'origine.
En plus d'accepter les tableaux en tant que paramètres, Concat peut également accepter d'autres types de valeurs sous forme de paramètres. Ils seront utilisés comme nouveaux éléments, ajoutant la fin du tableau.
console.log ([]. Concat (1,2,3)); // [1,2,3]; // équivalent à console.log ([]. Concat (1, [2,3])); // [1,2,3]; console.log ([]. Concat ([1], [2,3])); // [1,2,3];
Bien qu'il y ait moins de contenu ici, cela semble assez simple. Mais ce n'est vraiment pas facile à comprendre.
2. Sentez la méthode Concat à partir de l'exemple
Après avoir parlé des connaissances de base, permettez-moi de vous montrer une question que j'ai rencontrée récemment. Le titre original est comme ça.
Vous pouvez voir ce que cela signifie en regardant les exemples.
L'une des solutions à cette question est:
var aplaten = function (arr) {return [] .concat.apply ([], arr);};Cette fonction simple peut réaliser la fonction de fusion des éléments dans un tableau. Mais quand je comprends cette valeur de retour, un problème se pose.
Question: Pourquoi y a-t-il une différence entre l'utilisation de la méthode d'application et ne pas utiliser la méthode d'application?
console.log ([]. Concat.Apply ([], [[1], [2], [3]])); // [1, 2, 3] console.log ([]. Concat ([[1], [2], [3]]); // [[1], [2], [3]]
Dans le code ci-dessus, un nouveau tableau est également ajouté à la queue dans un tableau vide, et le premier revient [1,2,3]. Le second est un tableau bidimensionnel.
Après une période de lancer et de poursuite, j'ai finalement compris les différentes raisons.
Tout d'abord, lorsque nous appelons la méthode d'instance Concat dans un tableau vide, nous passons les paramètres dans Concat et poussons jusqu'à la fin du tableau. Autrement dit, le tableau vide est fusionné avec le tableau le plus extérieur du tableau passé, puis un nouveau tableau est retourné.
console.log ([]. Concat (1,2,3)); // [1, 2, 3] console.log ([]. Concat ([1], [2], [3])); // [1, 2, 3] console.log ([]. Concat ([[1], [2], [3]]); // [1], [2], [3]] console.log ([]. Concat ([[1], [2], [3]])); // [[1], [2], [3]]]
Dans le code ci-dessus, il passe progressivement de plusieurs tableaux vers des tableaux unidimensionnels, des tableaux bidimensionnels et des tableaux tridimensionnels.
Dans l'explication détaillée et l'article récapitulatif d'appel, appliquer et lier des méthodes en JavaScript, il est mentionné que la fonction de la méthode d'application est similaire à la méthode d'appel, et elle modifie également ce point (la portée où la fonction est exécutée), puis appelle la fonction dans la portée spécifiée. La fonction sera également exécutée immédiatement. La seule différence est qu'il reçoit un tableau comme argument lorsque la fonction est exécutée.
Le premier paramètre de la méthode d'application est également l'objet que cela veut pointer. S'il est défini sur null ou non défini ou ceci, il équivaut à spécifier un objet global. Le deuxième paramètre est un tableau, et tous les membres du tableau sont utilisés comme paramètres à leur tour, et la fonction d'origine est transmise lorsqu'elle est appelée. Les paramètres de la fonction d'origine doivent être ajoutés un par un dans la méthode d'appel, mais dans la méthode d'application, ils doivent être ajoutés sous forme de tableau.
console.log ([]. Concat.Apply ([], [[1], [2], [3]])); // [1, 2, 3] console.log ([]. Concat ([[1], [2], [3]]); // [[1], [2], [3]]
Comme on peut le voir à partir du code, le premier morceau de code appelle d'abord la méthode Concat sur le tableau vide. La fonction de cette méthode est d'ajouter des membres du nouveau tableau à la fin du tableau d'origine. La méthode d'application est à nouveau appelée et le premier paramètre est passé, spécifiant la portée de l'objet exécuté. La fonction du deuxième paramètre est de passer tous les membres du tableau sous forme de paramètres en même temps et de les transmettre dans le tableau lorsqu'il est appelé.
Par conséquent, lorsque les méthodes Concat et Application sont utilisées en même temps, les fonctions des deux méthodes seront superposées, ce qui est un phénomène différent de l'utilisation de Concat seul. Voyons un exemple.
console.log ([]. Concat ([1,2,3])); // [1, 2, 3] console.log ([]. Concat.Apply ([], [[1], [2], [3]])); // [1, 2, 3] console.log ([]. Concat ([[1], [2], [3]]); // [1], [2, [3]] console.log ([]. Concat ([[1], [2], [3]])); // [[1], [2], [3]] console.log ([]. Concat ([[1], [2], [3]])); // [[1], [2], [3]] console.log ([]. Concat ([[1], [2], [3]]])); // [[1], [2], [3]] console.log ([]. Concat ([[1], [2], [2], [[3]]] console.log ([]. Concat.Apply ([], [[[1], [2], [3]]])); // [[[1], [2], [3]]]]] [3]]]
Dans le code ci-dessus, la méthode Concat combine le plus de chiffres, puis fusionne le tableau de couche suivant sur la base de la fusion.
console.log ([]. Concat.Apply ([], [[1], [2], [3]])); // [1, 2, 3] // équivalent à Console.log ([]. Concat (1,2,3)); // [1,2,3]
Résumer:
1. Lorsque vous utilisez la méthode Concat uniquement, les membres du nouveau tableau seront ajoutés à la fin du tableau d'origine.
2. Lorsque vous utilisez la méthode Appliquer pour spécifier ce pointeur de la méthode Concat, les fonctions des deux méthodes seront superposées.
3. Méthodes pour fusionner les éléments du tableau:
var aplaten = function (arr) {return [] .concat.apply ([], arr);}; var aplaten = function (array) {return array.reduce (function (a, b) {return a.concat (b);}, [])}Ce qui précède est la méthode de fusion des tableaux à l'aide de la méthode Concat qui vous est présentée par l'éditeur. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!