Maison  >  Article  >  interface Web  >  Résumé des exemples d'utilisation de certaines fonctions de tableau couramment utilisées en JavaScript

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

伊谢尔伦
伊谢尔伦original
2017-07-25 11:52:291285parcourir

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!

Déclaration:
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