Les mots précédents
Les cordes et les tableaux ont de nombreuses similitudes. Ils ont de nombreuses méthodes et sont très similaires; Mais ils ont des différences. Les chaînes sont des valeurs immuables, elles peuvent donc être considérées comme des tableaux en lecture seule. Cet article compare des méthodes similaires de chaînes et de tableaux
Indexable
Ecmascript5 définit une méthode pour accéder aux caractères, en utilisant des crochets plus
Le plus grand avantage des chaînes indexables est qu'ils sont simples, remplaçant les appels Charat () par des crochets, ce qui est plus concis, lisible et peut-être plus efficace. Non seulement cela, le fait que les chaînes se comportent comme des tableaux rendent les méthodes de tableau communes applicables aux chaînes
Si le paramètre est hors de portée ou nan, sortie non définie
var str = "hello"; console.log (str [0]); // hconsole.log (str [[1]]); // eConsole.log (str [false]); // undefinedconsole.log (str [-1]); // undefinedconsole.log (str [nan]); // undefinedConsole.Log (Str []);
var arr = ['h', 'e', 'l', 'l', 'o']; console.log (arr [0]); // hconsole.log (arr [[1]]); // econsole.log (arr [false]); // un DefinedConsole.log (arr [-1]); // undefinedConsole.log (arr [nan]); // undefinedConsole.log (arr []); // rapport erreur
Convertir
Les chaînes peuvent être converties en tableaux en utilisant la méthode Split (); Les tableaux peuvent être convertis en chaînes à l'aide de la méthode join ()
【diviser()】
La méthode Split () divise une chaîne en plusieurs chaînes en fonction du séparateur spécifié et place le résultat dans un tableau. Le séparateur peut être une chaîne ou une expression régulière
Cette méthode peut accepter (facultatif) un deuxième paramètre pour spécifier la taille du tableau. Si le deuxième paramètre est une valeur dans la plage 0-array.length, la sortie en fonction du paramètre spécifié et la sortie se traduit dans d'autres cas.
Si le délimiteur spécifié n'apparaît pas dans la chaîne, la valeur de la chaîne d'origine est renvoyée sous forme de tableau.
var colortext = 'rouge, bleu, vert, jaune'; console.log (colortext.split ('')); // ["r", "e", "d", ",", "b", "l", "u", "e", "e", "e", ",", "g" "y", "e", "l", "l", "l", "o", "w"] console.log (colortext.split (',')); // ["red", "bleu", "vert", "jaune"] console.log (colortext.split (',', 2)); // ["red", "blue"]console.log(colorText.split(',',6));//["red", "blue", "green", "yellow"]console.log(colorText.split('-'));//["red,blue,green,yellow"]console.log(colorText.split(//,/));//["red", "blue", "green", "Yellow"] console.log (Colortext.split (/ e /)); // ["r", "d, blue", ", gr", "", "n, y", "llow"] console.log (Colortext.split (/ [^ /,] + /)); // modifier les autres que des comas IE8- reconnaîtra comme [",", ",", ",", "]【rejoindre()】
La méthode join () peut utiliser différents délimiteurs pour construire cette chaîne. La méthode join () ne reçoit qu'un seul paramètre, qui est utilisé comme délimiteur, puis renvoie une chaîne contenant tous les éléments du tableau.
Si aucune valeur n'est transmise à la méthode join (), utilisez une virgule comme séparateur
var a = [1,2,3]; console.log (a.join ()); // '1,2,3'console.log (a.join (' ')); //' 1 2 3'console.log (a.join ('')); // '123'var b = new Array (10); B.Join ('-'); // '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Si la valeur d'un élément dans le tableau est nulle ou non définie, la valeur est représentée comme une chaîne vide dans le résultat renvoyé par la méthode join ()
var couleurs = [1, indéfini, 2, null, 3]; console.log (couleurs.join ()); // '1 ,, 2 ,, 3'
Étant donné que les chaînes sont des objets de tableau, vous pouvez également utiliser la méthode join ()
console.log (array.prototype.join.call ('hello', '-')); // "bonjour" var str = 'test'; var arr = str.split ('') // ["t", "e", "s", "t"] console.log (arr.join ('-')); // 'Tes-t'Épissage
Les chaînes et les tableaux partagent la méthode d'épissage concat ()
var value = 'hello'; console.log (value.concat ('world')); // 'helloworld'console.log (value.concat ([' world '])); //' helloworld'console.log (value.concat (['world']])); // 'helloworld' var value = ['Hello']; console.log (value.concat ('world')); // ["Hello", "world"] console.log (value.concat (['world'])); // ["Bonjour", "monde"] console.log (valeur.concat ([world '])); // ["bonjour", ["World"] console.log (value.concat ([['monde']])); // ["Hello", ["World"]]créer
Les chaînes et les tableaux ont la méthode de création Slice (), qui est utilisée pour créer respectivement des sous-chaînes et des sous-réseaux.
La méthode Slice () crée un nouveau tableau (ou chaîne) basé sur un ou plusieurs éléments dans le tableau (ou chaîne) actuel, accepte un ou deux paramètres, c'est-à-dire pour renvoyer les positions de début et de fin de l'élément, et enfin renvoyer le nouveau tableau (ou chaîne)
La méthode Slice (démarrage, fin) nécessite deux paramètres Démarrer et fin, qui renvoie un sous-réseau (ou une chaîne) de la position de début à (mais ne contient pas) la position d'extrémité dans ce tableau (ou chaîne). Si la fin n'est pas définie ou n'existe pas, il renvoie tous les éléments de la position de début à la fin du tableau (ou de la chaîne).
Si Start est un nombre négatif, démarrez = max (longueur + démarrage, 0)
Si la fin est un nombre négatif, end = max (longueur + fin, 0)
Démarrer et fin ne peut pas échanger des positions
nombres var = [1,2,3,4,5]; console.log (nombres.slice (2)); // [3,4,5] console.log (nombres.slice (2, indéfini)); // [3,4,5] consol e.log (nombres.slice (2,3)); // [3] console.log (nombres.slice (2,1)); // [] console.log (nombres.slice (-3)); // - 3 + 5 = 2 -> [3,4,5] console.log (nombres.slice (-8)); // max (5 + -8,0) = 0 -> [1,2,3,4,5] console.log (nombres.slice (0, -3)); // - 3 + 5 = 2 -> [1,2] console.log (nombres.slice (-2, -1)); // - 2 + 5 = 3; -1 + 5 = 4; -> [4]
var stringValue = 'Hello World'; console.log (StringValue.slice ()); // 'Hello World'console.log (StringValue.slice (2)); //' llo World'console.log (StringValue.slice (20)); // '' Console.log (StringValue.Slice (2, undefined)); world'console.log (stringValue.slice (2, -5)); // 'llo' console.log (stringValue.slice (2, -20)); // '' console.log (StringValue.slice (-2,2)); // '' console.log (StringValue.Slice (-2, -20); console.log (stringValue.slice (-2,20)); // 'lnd'console.log (stringValue.slice (-20,2)); //' he'console.log (stringValue.slice (-20, -2)); // 'bonjour wor'
Emplacement
Les chaînes et les tableaux ont deux méthodes pour trouver des positions: indexof () et lastIndexof (). La méthode de position est exactement l'opposé de la méthode de lecture des supports []. L'un consiste à trouver l'index via l'élément, et l'autre est de trouver l'élément via l'index.
【Indexof ()】
La méthode indexof (Search, Start) reçoit deux paramètres Rechercher et Démarrer, renvoyant l'emplacement où la recherche apparaît d'abord, et si elle n'est pas trouvée, elle renvoie -1
Le paramètre de recherche dans une chaîne appellera la fonction de transformation String () pour convertir la valeur non-chaîne du paramètre en une chaîne; tandis que le paramètre de recherche dans le tableau sera comparé à l'aide de l'opérateur d'égalité strict (===)
Qu'il s'agisse d'un tableau ou d'une chaîne, le deuxième démarrage du paramètre appellera implicitement la fonction de transformation numéro (), convertissant le démarrage de la valeur non numérique (sauf non définie) en valeurs numériques; Si ce paramètre est ignoré ou si le paramètre n'est pas défini ou nan, démarrez = 0
Si le paramètre de démarrage est un nombre négatif, le traitement de la chaîne est de démarrer = 0; tandis que le traitement du tableau est de démarrer = max (0, start + longueur)
var string = 'Hello World World '; console.log (string.indexof (' ld ')); // 9Console.log (string.indexof (' ld ', indéfini)); // 9Console.log (string.indexof (' ld ', nan)); // 9console.log (string.indexof (' ld ', - 1)); // n 9Console.log (Sty ring.indexof ('ld', - 1)); // 9Console.log (string.indexof ('ld', - 1)); // 9Console.log (string.indexof ( 'ld', - 1)); // 9Console.log (String.Indexof ('ld', - 1)); // 9Console.log (String.Indexof ('ld', - 1)); // 9 console.log (string.indexof ('ld', 10)); // 15Console.log (string.indexof ('ld', [10])); // 15Console.log (string.index De ('true', [10])); // - 1Console.log (String.Indexof (false, [10])); // - 1Console.log (String.Indexof (false, [10])); // - 1 var arr = ['a', 'b', 'c', 'd', 'e', 'a', 'b']; console.log (arr.indexof ('a', indéfini)); // 0console.log (arr.indexof ('a', nan)); // 0consol e.log (arr.indexof ('a', 1)); // 5Console.log (arr.indexof ('a', true)); // 5Console.log (arr.indexof ('a', - 1)); // max (0, -1 + 7) = 6; -1Console.log (arr.indexof ('a', - 5)); // max (0, -5 + 7) = 2; 5Console.log (arr.indexof ('a', - 50)); // max (0, -50 + 7) = 0; 0【LastIndexof ()】
Contrairement à la méthode indexof (), la méthode LastIndexof () consiste à rechercher de droite à gauche.
La méthode LastIndexof (Search, Start) reçoit deux paramètres Rechercher et Démarrer, renvoyant l'emplacement où la recherche apparaît d'abord, et si elle n'est pas trouvée, elle renvoie -1
De même, le paramètre de recherche dans une chaîne appelle la fonction de transformation String () pour convertir la valeur non-corde du paramètre en une chaîne; tandis que le paramètre de recherche dans le tableau est comparé à l'aide de l'opérateur d'égalité strict (===)
Qu'il s'agisse d'un tableau ou d'une chaîne, le deuxième démarrage du paramètre appellera implicitement la fonction de transformation numéro (), convertissant le démarrage des valeurs non numériques (sauf non définies) en valeurs numériques.
Si ce paramètre est ignoré ou si le paramètre n'est pas défini ou NAN, le traitement de la chaîne est start = length - 1; tandis que le traitement du tableau est démarré = 0
Si le paramètre de démarrage est un nombre négatif, le traitement de la chaîne est de démarrer = 0; tandis que le traitement du tableau est de démarrer = max (0, start + longueur)
var string = 'Hello World world '; console.log (String.LastIndexof (' ld ')); // 15Console.log (String.LastIndexof (' ld ', Undefined)); // 15Console.log (Strin g.lastIndexof ('ld', nan)); // 15Console.log (string.lastIndexof ('ld', - 1)); // - 1Console.log (String.LastIndexof ('H', - 1)); // 0c onsole.log (string.lastIndexof ('w', undefined)); // 12Console.log (String.LastIndexof ('ld', 10)); // 9Console.log (String.Last. Indexof ('ld', [10])); // 9Console.log (string.lastIndexof ('ld', [10])); // - 1Console.log (String.LastIndexof (false, [10])); // - 1 var arr = [1,2,3, '1', '2', '3']; console.log (arr.lastIndexof ('2')); // 4Console.log (arr.lastIndexof (3)); // 2Console.log (arr.llasteIndexof (0)); // - 1var arr = ['a', 'b', 'c', 'd', 'e', 'a', 'b']; console.log (arr.lastIndexof ('b')); // 6Console.log (arr.lasteIndexof ('b', undefined)); // - 1Console.log (arr.lastexof ('a', u, u ndefined)); // 0console.log (arr.lastIndexof ('b', nan)); // - 1Console.log (arr.lastIndexof ('b', 1)); // 1Console.log (arr.lastindexof ('b', - 1)); // max (0, -1 + 7) = 6; 6Console.log (arr.LastIndexof ('b', - 5)); // max (0, -5 + 7) = 2; 1Console.log (arr.LastIndexof ('b', - 50)); // max (0, -50 + 7) = 0; -1La comparaison ci-dessus des tableaux et des méthodes de chaîne dans JavaScript est tout le contenu que je partage avec vous. J'espère que vous pourrez vous faire référence et j'espère que vous pourrez soutenir Wulin.com plus.