Tâche : J'ai d'abord défini une variable var arr = [0,1,2,3,4,5] ; je veux maintenant simuler la méthode push pour ajouter quelque chose après 5 dans ce tableau, nous Que faut-il faire ? Je vais vous donner 5 minutes pour réfléchir. S'il vous plaît, ne baissez pas les yeux avant d'y penser.
Analyse : Nous voulons ajouter quelque chose à la fin de ce tableau, n'est-ce pas ? Le point clé est de savoir comment trouver la dernière position de l'élément. Ne considérons pas d'abord la dernière position. Pensons d'abord à la façon dont nous accédons habituellement au contenu d'un tableau. Est-ce comme ça arr[n], n'est-ce pas ? simplement, s'il n'y a pas un tel index, il sera indéfini. Si nous continuons à ajouter 1 à l'index de ce tableau, alors si undéfini apparaît, est-ce la position que nous recherchons. Bien que cette méthode soit OK, j'ai un ? une meilleure façon d'utiliser L'attribut length peut obtenir la longueur de ce tableau. Ensuite, cette longueur est l'index de ce tableau + 1. Nous voulons simplement ajouter du contenu à cet index.
Code :
var arr = [0,1,2,3,4,5]; arr.length 获取这个数组的最后位置
Tâche : Maintenant que nous avons obtenu la dernière position du tableau, nous pouvons y ajouter du contenu. Alors comment l'ajouter ? À qui ajouter et comment ajouter.
Analyse : réfléchissez maintenant aux moyens d'ajouter du contenu à un tableau ? La longueur obtenue est la position que nous voulons ajouter.
Synthèse :
var arr = [0,1,2,3,4,5]; function Push(value){ arr[arr.length] = value; } Push(6); console.log(arr); //[0, 1, 2, 3, 4, 5, 6]
Tâche : bien que vous puissiez désormais y ajouter du contenu, vous ne pouvez en ajouter qu'un à la fois. Que dois-je faire ?
Analyse : mon vieil ami me manque car du coup, ce vieil ami peut nous aider à réaliser certaines choses répétitives, alors demandons-lui de nous aider.
Code :
Analyse : Comment devrions-nous écrire cela ? À quel point suis-je plus petit ? Est-ce autant que nous en ajoutons ? Alors combien de bits devons-nous ajouter ? Il semble que nous ne le sachions vraiment pas, mais un vieil ami sait qu'il s'agit d'arguments, qui peuvent obtenir les paramètres que nous transmettons, et c'est un pseudo-tableau, ce qui signifie qu'il peut également utiliser l'attribut length comme un tableau pour obtenir les paramètres que nous transmettons. La longueur réelle du paramètre.
Code :
for(var i=0;i<arguments.length;i++){}
Analyse : Alors maintenant, la question est : quel contenu ajoutons-nous à où ? Pour en revenir à notre tâche, voulons-nous ajouter le contenu que nous avons transmis à la dernière position d'un tableau, alors comment obtenir le contenu ? nous sommes passés ? Nous semblons avoir dit que les arguments peuvent avoir leur contenu.
Code :
var arr = [0,1,2,3,4,5]; function Push{ for(var i=0;i<arguments.length;i++){ arr[arr.length] = arguments[i]; } } Push(6,7,8);
Fait.
Expansion périscolaire : amis avec des connaissances de base
Ok, bien que la tâche soit terminée, le problème est maintenant que ce code ne peut servir que le tableau arr. Si nous voulons fournir cette fonction pour tous les tableaux, nous devons ajouter cette méthode au prototype de Array.
var arr = [0,1,2,3,4,5]; Array.prototype.Push = function{ for(var i=0;i<arguments.length;i++){ this[this.length] = arguments[i]; } } arr.Push(1,2,3)
Changez l'arr à l'intérieur par ceci. Cela signifie que quiconque l'appelle. Si vous voulez en savoir plus à ce sujet, vous pouvez lire pour bien comprendre le sens de ceci en js. Vous n'avez pas besoin de mémoriser cet article.