Maison > interface Web > js tutoriel > Astuce de simulation JavaScript push_javascript

Astuce de simulation JavaScript push_javascript

WBOY
Libérer: 2016-05-16 15:12:02
original
1241 Les gens l'ont consulté

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 获取这个数组的最后位置
Copier après la connexion

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]
Copier après la connexion

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++){}
Copier après la connexion

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);
Copier après la connexion

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)
Copier après la connexion

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.

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal