Maison >interface Web >js tutoriel >Résumé des exemples d'utilisation de certaines fonctions de tableau couramment utilisées en JavaScript
Fonctions de tableau communes
concat
Ajoute un tableau après le tableau existant et renvoie le nouveau tableau sans affecter le tableau existant :
var a = [123]; var b = "sunnycat"; var c = ["www",21,"ido"]; var d = {x:3.14, y:"SK"}; var e = [1,2,3,4,[5,6,[7,8]]]; alert(a.concat(b)); // -> 123,sunnycat alert(a); // -> 123 alert(b.concat(c, d)); // -> sunnycatwww,21,ido[object Object] alert(c.concat(b)); // -> www,21,ido,sunnycat alert(e.concat(11,22,33).join(" # ")); // -> 1 # 2 # 3 # 4 # 5,6,7,8 # 11 # 22 # 33
Il est à noter qu'il ne peut être utilisé que pour des tableaux ou des chaînes. Si le connecté (un devant) est une valeur numérique, une valeur booléenne ou un objet, une erreur sera signalée lorsque les chaînes. sont connectés à des tableaux, des caractères La chaîne sera épissée avec le premier élément du tableau pour former un nouvel élément, et la chaîne de connexion du tableau ajoutera de nouveaux éléments (je n'en connais pas la raison, veuillez divulguer si vous savoir). Pour les tableaux contenant des tableaux et des objets, ils resteront tels quels après la connexion.
rejoindre
Connectez les tableaux avec les séparateurs spécifiés pour convertir les tableaux en chaînes :
var a = ['a','b','c','d','e','f','g']; lert(a.join(",")); // -> a,b,c,d,e,f,g 相当于a.toString() alert(a.join(" x ")); // -> a x b x c x d x e x f x g
C'est facile à comprendre, mais vous avez besoin faire attention Le but est de convertir uniquement le tableau unidimensionnel. S'il y a un tableau dans le tableau, la connexion de chaîne spécifiée par join ne sera pas utilisée, mais la valeur par défaut toString() sera utilisée, comme
.var a = ['a','b','c','d','e','f','g',[11,22,33]]; alert(a.join(" * ")); // -> a * b * c * d * e * f * g * 11,22,33
Remarque : dans le tableau Array, la *concaténation ne sert à rien
pop
pour supprimer le dernier élément du tableau et renvoyer le element
var a = ["aa","bb","cc"]; document.write(a.pop()); // -> cc document.write(a); // -> aa, bb
Remarque : Si le tableau est vide, undefined
push
ajoute un tableau à la fin du tableau et renvoie la nouvelle longueur du tableau. La différence entre
var a = ["aa","bb","cc"]; document.write(a.push("dd")); // -> 4 document.write(a); // -> aa,bb,cc,dd document.write(a.push([1,2,3])); // -> 5 document.write(a); // -> aa,bb,cc,dd,1,2,3
et concat est que, concat n'affecte pas le tableau d'origine et renvoie directement le nouveau tableau, tandis que push modifie directement le tableau d'origine et renvoie la nouvelle longueur. du tableau
tri
Tri du tableau, regardons-le d'abord Exemple
var a = [11,2,3,33445,5654,654,"asd","b"]; alert(a.sort()); // -> 11,2,3,33445,5654,654,asd,b
Le résultat n'est-il pas surprenant ? le tri ne se fait pas par taille entière, mais par comparaison de chaînes, qui consiste à comparer le code ANSI du premier caractère. Les plus petits sont classés en premier. Si c'est le cas, prenez le deuxième caractère et comparez. comparez par valeur entière, vous pouvez le faire
var a = [11,2,3,33445,5654,654]; a.sort(function(a,b) { return a - b; }); alert(a); // -> 2,3,11,654,5654,33445
La méthode sort() a un paramètre facultatif, qui est la fonction dans le code. Ceci est un exemple simple. Les non-nombres ne peuvent pas être triés. -les nombres nécessitent plus de jugement. Je n'entrerai pas dans les détails ici
reverse
Le tri inversé d'un tableau est identique à sort(). valeur du premier caractère à comparer
var a = [11,3,5,66,4]; alert(a.reverse()); // -> 4,66,5,3,11
Si le tableau contient également un tableau, il sera traité comme un objet et les éléments ne seront pas extraits.
var a = ['a','b','c','d','e','f','g',[4,11,33]]; alert(a.reverse()); // -> 4,11,33,g,f,e,d,c,b,a alert(a.join(" * ")); // -> 4,11,33 * g * f * e * d * c * b * a
Il devrait être 11 Classé dernier, car 4,11,33 sont comparés ici comme des objets complets, donc ils sont classés en premier
Si vous ne comprenez pas, utilisez join() pour les enchaîner, ce sera beaucoup plus clair
shift
Supprime le premier élément du tableau et renvoie l'élément, similaire à pop
var a = ["aa","bb","cc"]; document.write(a.shift()); // -> aa document.write(a); // -> bb,cc
Remarque : lorsque le tableau est vide, non défini
unshift
L'opposé de shift, ajoute des éléments au début du tableau et renvoie la nouvelle longueur du tableau
var a = ["aa","bb","cc"]; document.write(a.unshift(11)); // -> 4 注:IE下返回undefined document.write(a); // -> 11,aa,bb,cc document.write(a.unshift([11,22])); // -> 5 document.write(a); // -> 11,22,11,aa,bb,cc document.write(a.unshift("cat")); // -> 6 document.write(a); // -> cat,11,22,11,aa,bb,cc
Notez que cette méthode retournera undefined sous IE , cela ressemble à un bug Microsoft, mais je peux utiliser correctement la nouvelle longueur du tableau dans Firefox
slice
pour renvoyer le fragment de tableau
var a = ['a','b','c','d','e','f','g']; alert(a.slice(1,2)); // -> b alert(a.slice(2)); // -> c,d,e,f,g alert(a.slice(-4)); // -> d,e,f,g alert(a.slice(-2,-6)); // -> 空
a. slice(1,2), commençant de l'indice 1 jusqu'au nombre entre l'indice 2, notez que l'élément avec l'indice 2 n'est pas inclus
S'il n'y a qu'un seul paramètre , la valeur par défaut est la fin du tableau
-4 signifie le 4ème élément à partir du bas, donc les quatre éléments du bas sont renvoyés
La dernière ligne commence à partir du 2ème à partir du bas Parce qu'elle est interceptée vers l'arrière. , il est évident que les éléments précédents ne peuvent pas être obtenus, donc un tableau vide est renvoyé Si Changez en a.slice(-6,-2) et retournez b,c,d,e
. splice
supprime les éléments d'un segment du tableau et renvoie les éléments supprimés
var a = [1,2,3,4,5,6,7,8,9]; document.write(a.splice(3,2)); // -> 4,5 document.write(a); // -> 1,2,3,6,7,8,9 document.write(a.splice(4)); // -> 7,8,9 注:IE下返回空 document.write(a); // -> 1,2,3,6 document.write(a.splice(0,1)); // -> 1 document.write(a); // -> 2,3,6 document.write(a.splice(1,1,["aa","bb","cc"])); // -> 3 document.write(a); // -> 2,aa,bb,cc,6,7,8,9 document.write(a.splice(1,2,"ee").join("#")); // -> aa,bb,cc#6 document.write(a); // -> 2,ee,7,8,9 document.write(a.splice(1,2,"cc","aa","tt").join("#")); // -> ee#7 document.write(a); // -> 2,cc,aa,tt,8,9
Notez que le deuxième paramètre de cette méthode est obligatoire sous IE S'il n'est pas renseigné, sa valeur par défaut est 0, comme a.splice(4). Sous IE, il renvoie vide. L'effet Équivalent à a.splice(4,0)
toString
Convertir un tableau en chaîne, pas seulement des tableaux, tous les objets peuvent utiliser cette méthode
var a = [5,6,7,8,9,["A","BB"],100]; document.write(a.toString()); // -> 5,6,7,8,9,A,BB,100 var b = new Date() document.write(b.toString()); // -> Sat Aug 8 17:08:32 UTC+0800 2009 var c = function(s){ alert(s); } document.write(c.toString()); // -> function(s){ alert(s); }
La valeur booléenne renvoie vrai ou faux, l'objet renvoie [object objectname]
Par rapport à la méthode join(), join() remplace uniquement le tableau unidimensionnel, tandis que toString() remplace l'ensemble du tableau (qu'il soit unidimensionnel ou multidimensionnel) complètement planarisé
En même temps, cette méthode peut être utilisée pour décimal, binaire, octal , et conversion hexadécimale, par exemple :
var a = [5,6,7,8,9,"A","BB",100]; for(var i=0; i<a.length; i++){ document.write(a[i].toString() + " 的二进制是 " + a[i].toString(2) + " ,八进制是 " + a[i].toString(8) + " ,十六进制是 " + a[i].toString(16)); // -> 4,5 }
Résultat de sortie :
5 的二进制是 101 ,八进制是 5 ,十六进制是 5 6 的二进制是 110 ,八进制是 6 ,十六进制是 6 7 的二进制是 111 ,八进制是 7 ,十六进制是 7 8 的二进制是 1000 ,八进制是 10 ,十六进制是 8 9 的二进制是 1001 ,八进制是 11 ,十六进制是 9 A 的二进制是 A ,八进制是 A ,十六进制是 A BB 的二进制是 BB ,八进制是 BB ,十六进制是 BB 100 的二进制是 1100100 ,八进制是 144 ,十六进制是 64
La conversion ne peut être effectuée que sur les éléments. Si l'ensemble du tableau est converti, le tableau sera renvoyé inchangé.
toLocaleString
Retour au format local String, principalement utilisé sur les objets Date
var a = new Date(); document.write(a.toString()); // -> Sat Aug 8 17:28:36 UTC+0800 2009 document.write(a.toLocaleString()); // -> 2009年8月8日 17:28:36 document.write(a.toLocaleDateString()); // -> 2009年8月8日
La différence est que toString() renvoie le format standard , et toLocaleString() renvoie la date complète au format local (dans [Panneau de configuration]>>[Region and Language Option], en modifiant le format [time] et [long date]), toLocaleDateString() est identique à toLocaleString (), sauf qu'il manque l'heure
valueOf
selon différentes valeurs originales. Lorsqu'il est utilisé pour la sortie, il est similaire à toString(). , mais toString() renvoie le type de chaîne et valueOf() renvoie le type d'objet d'origine
var a = [1,2,3,[4,5,6,[7,8,9]]]; var b = new Date(); var c = true; var d = function(){ alert("sunnycat"); }; document.write(a.valueOf()); // -> 1,2,3,4,5,6,7,8,9 document.write(typeof (a.valueOf())); // -> object document.write(b.valueOf()); // -> 1249874470052 document.write(typeof(b.valueOf())); // -> number document.write(c.valueOf()); // -> true document.write(typeof(c.valueOf())); // -> boolean document.write(d.valueOf()); // -> function () { alert("sunnycat"); } document.write(typeof(d.valueOf())); // -> function
Les tableaux sont également des objets, donc typeof ( a.valueOf()) renvoie un objet, qui est toujours un. tableau multidimensionnel
var a = [1,2,3,[4,5,6,[7,8,9]]]; var aa = a.valueOf(); document.write(aa[3][3][1]); // -> 8
L'objet Date renvoie le nombre de millisecondes depuis le 1er janvier 1970. Les objets Math et Error n'ont pas la méthode valueOf.
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!