Maison > interface Web > js tutoriel > le corps du texte

Résumé des exemples d'utilisation de certaines fonctions de tableau couramment utilisées en JavaScript

伊谢尔伦
Libérer: 2017-07-25 11:52:29
original
1289 Les gens l'ont consulté

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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!

É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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!