Las palabras anteriores
Las cuerdas y las matrices tienen muchas similitudes. Tienen muchos métodos y son muy similares; Pero tienen diferencias. Las cadenas son valores inmutables, por lo que pueden considerarse como matrices de solo lectura. Este artículo compara métodos similares de cadenas y matrices.
Indexable
ECMAScript5 define un método para acceder a los caracteres, utilizando corchetes cuadrados más índices numéricos para acceder a caracteres específicos en una cadena
El mayor beneficio de las cadenas indexables es que son simples, reemplazando las llamadas Charat () con soportes cuadrados, que es más conciso, legible y posiblemente más eficiente. No solo eso, el hecho de que las cadenas se comportan como matrices hacen que los métodos de matriz comunes aplicables a las cuerdas
Si el parámetro está fuera de rango o NAN, salida indefinida
var estr = "hola"; console.log (str [0]); // hconsole.log (str [[1]]); // econsole.log (str [falso]); // undefinedconsole.log (str [-1]); // undefinedconsole.log (str [nan]); // undefinedconsole
var arr = ['h', 'e', 'l', 'l', 'o']; console.log (arr [0]); // hconsole.log (arr [[1]]); // econsole.log (arr [falso]); // definidoconsole.log (arr [-1]); // undefinedconsole.log (arr [nan]); // undefinedconsole.log (arr []); // informe error
Convertir
Las cadenas se pueden convertir en matrices usando el método Split (); Las matrices se pueden convertir en cadenas utilizando el método Join ()
【dividir()】
El método Split () divide una cadena en múltiples cadenas en función del separador especificado y coloca el resultado en una matriz. El separador puede ser una cadena o una expresión regular
Este método puede aceptar (opcional) un segundo parámetro para especificar el tamaño de la matriz. Si el segundo parámetro es un valor en el rango 0-array.length, salta de acuerdo con el parámetro especificado y la salida de todos los resultados en otros casos.
Si el delimitador especificado no aparece en la cadena, el valor de la cadena original se devuelve como una matriz.
var colorText = 'red,blue,green,yellow';console.log(colorText.split(''));//["r", "e", "d", ",", "b", "l", "u", "e", "e", "e", ",", "g", "r", "e", "e", "e", "e", "n", ",", "y", "e", "l", "l", "l", "o", "w"] console.log (colortext.split (',', ')); // ["rojo", "azul", "verde", "amarillo"] console.log (colortext.split (', ', 2)); // ["rojo", "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(/[^/,]+/));//Change strings other than commas into separators ["", ",",", ",", "","], IE8- reconocerá como [",", ",", ",", "]【unirse()】
El método Join () puede usar diferentes delimitadores para construir esta cadena. El método Join () solo recibe un parámetro, que se usa como delimitador, y luego devuelve una cadena que contiene todos los elementos de matriz.
Si no se pasa ningún valor al método Join (), use una coma como separador
var a = [1,2,3]; console.log (a.Join ()); // '1,2,3'console.log (a.Join (' ')); //' 1 2'console.log (a.Join ('')); // 123'var b = nuevo Array (10); B.Join ('-'); // '----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------Si el valor de un elemento en la matriz es nulo o indefinido, el valor se representa como una cadena vacía en el resultado devuelto por el método Join ()
Var Colors = [1, indefinido, 2, nulo, 3]; console.log (colores.Join ()); // '1 ,, 2 ,, 3'
Dado que las cadenas son objetos de matriz, también puede usar el método Join ()
console.log (array.prototype.join.call ('hola', '-')); // "hola" var str = 'test'; var arr = str.split ('') // ["t", "e", "s", "t"] console.log (arr.join ('-')); // 'tes-t'Empalme
Las cadenas y las matrices comparten el método de empalme concat ()
var valor = 'hello'; console.log (value.concat ('world')); // 'helloworld'console.log (value.concat ([' world '])); //' helloworld'console.log (value.concat (['world']]); // 'helloworld' var valor = ['hello']; console.log (value.concat ('world')); // ["hello", "world"] console.log (value.concat (['world']); // ["hola", "mundo"] console.log (value.concat (['world']]); // ["hello",,,,,,,,,, ",,,",,, ",,",, ",,,",, ",,",, ",,", ", hello". ["Mundo"] Console.log (value.concat ([['World']])); // ["Hola", ["Mundo"]]]crear
Tanto las cadenas como las matrices tienen el método de creación Slice (), que se utiliza para crear sustras y subarrañas respectivamente.
El método SLICE () crea una nueva matriz (o cadena) basada en uno o más elementos en la matriz actual (o cadena), acepta uno o dos parámetros, es decir, para devolver las posiciones de inicio y finalización del elemento, y finalmente devolver la nueva matriz (o cadena)
El método Slice (Start, End) requiere dos parámetros Inicio y FIN, que devuelve una subarrray (o cadena) desde la posición de inicio a (pero no contiene) la posición final en esta matriz (o cadena). Si el final está indefinido o no existe, devuelve todos los elementos desde la posición de inicio hasta el final de la matriz (o cadena).
Si el inicio es un número negativo, inicio = max (longitud + inicio, 0)
Si el final es un número negativo, end = max (longitud + final, 0)
El inicio y el final no pueden intercambiar posiciones
números var = [1,2,3,4,5]; console.log (números.slice (2)); // [3,4,5] console.log (números.slice (2, indefinido)); // [3,4,5] consol E.Log (números.slice (2,3)); // [3] console.log (números.slice (2,1)); // [] console.log (números.slice (-3)); //-3+5 = 2 -> [3,4,5] console.log (números.slice (-8)); // max (5 + -8,0) = 0 -> [1,2,3,4,5] console.log (números.slice (0, -3)); // -3 + 5 = 2 ->> [1,2] console.log (números.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, acceseroso); 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)); // 'ld'console.log (stringValue.slice (-20,2)); //' he'console.log (stringValue.slice (-20, -2)); // 'Hola' '
Ubicación
Tanto las cadenas como las matrices tienen dos métodos para encontrar posiciones: indexOf () y lastindexof (). El método de posición es exactamente lo opuesto al método de lectura entre paréntesis []. Una es encontrar el índice a través del elemento, y el otro es encontrar el elemento a través del índice.
【IndexOf ()】
IndexOf (búsqueda, inicio) El método recibe dos parámetros de búsqueda e inicio, devolviendo la ubicación donde aparece la búsqueda por primera vez, y si no se encuentra, devuelve -1
El parámetro de búsqueda en una cadena llamará a la función de transformación String () para convertir el valor de no hormería del parámetro en una cadena; mientras que el parámetro de búsqueda en la matriz se comparará utilizando el operador de igualdad estricto (===)
Ya sea que se trate de una matriz o una cadena, el segundo comienzo del parámetro llamará implícitamente la función de transformación numérica (), convirtiendo el valor no numérico de inicio (excepto indefinido) en valores numéricos; Si este parámetro se ignora o el parámetro está indefinido o nan, inicio = 0
Si el parámetro de inicio es un número negativo, el procesamiento de la cadena es iniciar = 0; Mientras que el procesamiento de la matriz debe iniciar = max (0, inicio+longitud)
var string = 'Hola mundo world';console.log(string.indexOf('ld'));//9console.log(string.indexOf('ld',undefined));//9console.log(string.indexOf('ld',NaN));//9console.log(string.indexOf('ld',-1));//9console.log(st 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 ('verdadero', [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', indefinido)); // 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 ()】
En contraste con el método indexOf (), el método LastIndexof () es buscar hacia arriba de derecha a izquierda.
El método LastIndexof (Search, Start) recibe dos parámetros Búsqueda e Inicio, devolviendo la ubicación donde aparece por primera vez el SearchString, y si no se encuentra, devuelve -1
Del mismo modo, el parámetro de búsqueda en una cadena llama a la función de transformación String () para convertir el valor de no cadena del parámetro en una cadena; mientras que el parámetro de búsqueda en la matriz se compara utilizando el operador de igualdad estricto (===)
Ya sea que se trate de una matriz o una cadena, el segundo comienzo del parámetro llamará implícitamente la función de transformación numérica (), convirtiendo los valores no numéricos de inicio (excepto indefinidos) en valores numéricos.
Si este parámetro se ignora o el parámetro está indefinido o nan, el procesamiento de la cadena es inicial = longitud - 1; mientras que el procesamiento de la matriz es iniciado = 0
Si el parámetro de inicio es un número negativo, el procesamiento de la cadena es iniciar = 0; Mientras que el procesamiento de la matriz debe iniciar = max (0, inicio+longitud)
var string = 'Hola mundo world '; console.log (string.lastIndexof (' ld ')); // 15console.log (string.lastindexof (' ld ', undefinado)); // 15console.log (strin g.lastindexof ('ld', nan)); // 15console.log (string.lastIndexOf ('ld',-1)); //-1console.log (string.lastIndexOf ('h',-1); // 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.lastinDexof (0)); //-1var ARR = [['a', ',' b ',' c ',' d ',' e ',', 'a', 'b']; console.log (arr.lastIndexof ('b', 6console.log (arr.lastIndexOf ('b', inventivo)); //-1console.log (arr.lastinDinDindoxof ('a', 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 comparación anterior de matrices y métodos de cadena en JavaScript es todo el contenido que comparto con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.