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; } }
function compare(value1,value2){ return value2 - value1; }
function compare(){ return Math.random() - 0.5; }
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];
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));//[]
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]
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,因为不是同一个引用
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]
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!