Maison > Article > interface Web > Résumé de divers exemples de méthodes de tableau en javascript
Méthode Array
Méthode Stack : La pile est une structure de données LIFO (dernier entré, premier sorti), qui est la le dernier élément ajouté a été supprimé le plus tôt possible. L'insertion (appelée poussée) et la suppression (appelée popping) d'éléments de la pile ne se produisent qu'en haut de la pile.
Méthode push() : peut recevoir n'importe quel nombre de paramètres, les ajouter un par un à la fin du tableau et renvoyer la longueur du tableau modifié.
Méthode pop() : supprime le dernier élément de la fin du tableau, réduit la valeur de longueur du tableau et renvoie l'élément supprimé.
Méthode de file d'attente : la file d'attente est une structure de données FIFO (premier entré, premier sorti) premier entré, premier sorti. La file d'attente ajoute des éléments à la fin de la liste et supprime les éléments du début de la liste. .
shift() : supprime le premier élément du tableau et le renvoie, tout en réduisant la longueur du tableau de 1 (utilisez shift() et push() ensemble pour simuler une file d'attente)
unshift() : ajoutez n'importe quel nombre d'éléments au début du tableau et renvoie la nouvelle longueur du tableau (utilisez unshift() et pop() en combinaison pour simuler la file d'attente dans la direction opposée)
[Note ] La méthode unshift() renvoyée par IE7 et versions antérieures Toujours indéfinie
Méthode de tri :
reverse() : inverse l'ordre du tableau et renvoie le tableau trié
sort () : Organisez les éléments du tableau par ordre croissant. La méthode de tri appellera la méthode toString() de chaque élément du tableau, puis comparera le tri de chaîne obtenu et renverra le tableau trié
[Note] Le tri ( ) peut accepter une fonction de comparaison comme paramètre, de sorte que Spécifie quelle valeur précède quelle valeur. La fonction de comparaison prend deux paramètres et renvoie un nombre négatif si le premier paramètre doit être avant le deuxième paramètre, 0 si les deux paramètres sont égaux et un nombre positif si le premier paramètre doit être après le deuxième paramètre
[Fonction de comparaison] (Utilisez : par exemple array1.sort(compare);)function compare(value1,value2){ if(value1 < value2){ return -1; }else if(value1 > value2){ return 1; }else{ return 0; } }Pour les types numériques ou les types d'objets où la méthode valueOf() renvoie un type numérique, la fonction de comparaison peut être simplifiée en :
function compare(value1,value2){ return value2 - value1; }[Conseils] : Les méthodes suivantes sont couramment utilisées pour créer un tableau aléatoire
function compare(){ return Math.random() - 0.5; }Méthodes de fonctionnement (couper, connecter, insérer, supprimer, remplacer) :
concat() : Créez un nouveau tableau basé sur tous les éléments du tableau actuel. Créez d'abord une copie du tableau actuel, puis ajoutez les paramètres reçus à la fin de la copie, et enfin renvoyez le tableau nouvellement construit (concat). () N'affecte pas le tableau d'origine)[Note 1] Lorsqu'aucun paramètre n'est transmis à la méthode concat(), elle copie simplement le tableau actuel[Note 2] Si le paramètre est un ou plusieurs tableaux, alors la méthode ajoutera chaque élément de ces tableaux au tableau résultat[Note 3] Si la valeur transmise n'est pas un tableau, les valeurs seront simplement ajoutées à la fin du tableau de résultats
e.g. var numbers = [1,2]; console.log(numbers.concat());//[1,2] console.log(numbers.concat([5,4,3],[3,4,5],1,2));//[1,2,5,4,3,3,4,5,1,2];slice() : crée un nouveau tableau basé sur un ou plusieurs éléments du tableau actuel, accepte un ou deux paramètres, c'est-à-dire renvoie les positions de début et de fin des éléments , et renvoie enfin le nouveau tableau (slice ()N'affecte pas le tableau d'origine)[Note 1] Lorsqu'il n'y a pas de paramètre, renvoie le tableau d'origine[Note 2] Lorsqu'il y a n'est qu'un seul paramètre, la méthode slice() renvoie à partir de la position spécifiée par le paramètre Vers tous les éléments à la fin du tableau actuel [Note 3] Lorsqu'il y a deux paramètres, cette méthode renvoie les éléments entre la position de départ et la position de fin, mais n'inclut pas les éléments à la position de fin [ Note 4] Si le paramètre est un nombre négatif, utilisez la longueur du tableau plus le nombre négatif comme paramètre [Note 5] Si la position de fin est plus petite que la position de départ, un tableau vide sera renvoyé
var numbers = [1,2,3,4,5]; console.log(numbers.slice());//[1,2,3,4,5] console.log(numbers.slice(2));//[3,4,5] console.log(numbers.slice(2,3));//[3] console.log(numbers.slice(-3));//-3+5=2 -> [3,4,5] console.log(numbers.slice(2,1));//[]splice() : Le tableau d'origine devient le tableau modifié, et splice() renvoie un tableau composé des éléments supprimés du tableau d'origine. S'il n'y a aucun élément supprimé, il renvoie un tableau vide [a] Supprimer : les deux paramètres doivent être La position du premier élément à être. supprimé, le nombre d'éléments à supprimer [b] Insertion : Les trois paramètres sont la position de départ, 0 (la base à supprimer), les éléments à insérer [c ] Remplacement : Les trois paramètres sont la position de départ, le nombre d'éléments à supprimer et les éléments à insérer [Note 1] Si le premier paramètre est un nombre négatif, utilisez la longueur du tableau plus le nombre négatif comme paramètre [Note 2] Si le deuxième paramètre est un nombre négatif, utilisez 0 comme paramètre
var numbers = [1,2,3,4,5]; console.log(numbers.splice(0,2),numbers);//[1,2] [3,4,5] var numbers = [1,2,3,4,5]; console.log(numbers.splice(1,0,11,12),numbers);//[] [1,11,12,2,3,4,5] var numbers = [1,2,3,4,5]; console.log(numbers.splice(1,3,11,12),numbers);//[2,3,4] [1,11,12,5] var numbers = [1,2,3,4,5]; console.log(numbers.splice(-4,3,11,12),numbers);//-4+5=1 -> [2,3,4] [1,11,12,5] var numbers = [1,2,3,4,5]; console.log(numbers.splice(-4,-3,11,12),numbers);//-4+5=1 -> [] [1,11,12,2,3,4,5]Méthode de position (ECMAScript5) : deux paramètres : l'élément à être trouvé, indiquant la recherche L'index de la position de départ (facultatif). Renvoie la position du premier élément de recherche qui remplit les conditions dans le tableau, ou -1 s'il n'est pas trouvé (la méthode de position n'affectera pas le tableau d'origine) [Note] Lors de la comparaison, utilisez l'opérateur de congruenceindexOf()lastIndexOf()
var person = {name: 'Nicholas'}; var people = [{name: 'Nicholas'}]; var morePeople = [person]; alert(people.indexOf(person));//-1,因为person和people[0]虽然值相同,但是是两个引用 alert(morePeople.indexOf(person));//0,因为person和morepeople[0]是同一个引用 alert(morePeople.indexOf({name: 'Nicholas'}));//-1,因为不是同一个引用[tips] Si toutes les valeurs d'index des éléments qui remplissent les conditions sont renvoyées
function allIndexOf(array,value){ var result = []; var pos = array.indexOf(value); if(pos === -1){ return -1; } while(pos > -1){ result.push(pos); pos = array.indexOf(value,pos+1); } return result; } var array = [1,2,3,3,2,1]; console.log(allIndexOf(array,1));//[0,5]méthode d'itération (ECMAScript5) : deux paramètres : la fonction à exécuter sur chaque élément et l'objet scope pour exécuter la fonction - la valeur qui affecte cela (facultatif). Les fonctions passées dans ces méthodes recevront trois paramètres : la valeur de l'élément du tableau, la position de l'élément dans le tableau et l'objet du tableau lui-même (la méthode d'itération n'affectera pas le tableau d'origine) chaque () : pour le tableau, exécutez la fonction donnée sur chaque élément du tableau. Si la fonction renvoie vrai pour chaque élément, retournez truefilter() : exécutez la fonction donnée sur chaque élément du tableau et renvoie la fonction. Un tableau composé d'éléments qui renvoient vrai (souvent utilisé pour interroger tous les éléments du tableau qui remplissent les conditions) forEach() : Exécutez la fonction donnée sur chaque élément du tableau. valeur de retour (équivalent à une boucle for)
map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组(常用于创建包含项与另一个数组一一对应的数组)
some():对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true
var numbers = [1,2,3,4,5,6,7,8,9,0]; var sum = 0; var everyResult = numbers.every(function(item,index,array){ return (item>2); }); var filterResult = numbers.filter(function(item,index,array){ return (item>2) }); var forEachResult = numbers.forEach(function(item,index,array){ sum += item; return (item>2) }); var mapResult = numbers.map(function(item,index,array){ return (item*2) }); var som = numbers.some(function(item,index,array){ return (item>2) }); console.log(everyResult);//false console.log(filterResult);//[3,4,5,6,7,8,9] console.log(forEachResult,sum);//undefined 45 console.log(mapResult);//[2,4,6,8,10,12,14,16,18,0] console.log(someResult);//true [tips] function logArray(value,index,array){ console.log(value); } [2,5,,,,,9].forEach(logArray)//2 5 9
归并方法(ECMAScript5):迭代数组的所有项,构建一个最终返回的值。接收两个参数:一个在每一项上调用的函数、作为归并基础的初始值(可选)。传给reduce()和reduceRight()的函数接受4个参数:前一个值、当前值、项的索引和数组对象。这个函数返回的任何值都会作为第一个参数自动传给下一项。第一次迭代发生在数组的第二项上。因此,第一个参数是数组第一项,第二个参数是数组第二项(归并方法不会影响原数组)
reduce()
reduceRight()
var sum = values.reduce(function(prev,cur,index,array){ return prev+cur; }) alert(sum);//15
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!