cortar - split javascript ejemplo
Convertir cadena con comas a la matriz (15)
Convertir todo tipo de cadenas.
var array = (new Function("return [" + str+ "];")());
var string = "0,1";
var objectstring = ''{Name:"Tshirt", CatGroupName:"Clothes", Gender:"male-female"}, {Name:"Dress", CatGroupName:"Clothes", Gender:"female"}, {Name:"Belt", CatGroupName:"Leather", Gender:"child"}'';
var stringArray = (new Function("return [" + string+ "];")());
var objectStringArray = (new Function("return [" + objectstring+ "];")());
JSFiddle https://jsfiddle.net/7ne9L4Lj/1/
Resultado en consola
Alguna práctica no soporta cadenas de objetos
- JSON.parse("[" + string + "]"); // throw error
- string.split(",")
// unexpected result
["{Name:"Tshirt"", " CatGroupName:"Clothes"", " Gender:"male-female"}", " {Name:"Dress"", " CatGroupName:"Clothes"", " Gender:"female"}", " {Name:"Belt"", " CatGroupName:"Leather"", " Gender:"child"}"]
¿Cómo puedo convertir una cadena a una matriz de JavaScript?
Mira el código:
var string = "0,1";
var array = [string];
alert(array[0]);
En este caso, alert
0,1
un 0,1
. Cuando se trataría de una matriz, aparecería un 0
, y cuando estuviera alert(array[1]);
Se llama, debe emerger el 1
.
¿Hay alguna posibilidad de convertir dicha cadena en una matriz de JavaScript?
¿Por qué no reemplaza ,
coma y split('''')
la cadena como esta que resultará en [''0'', ''1'']
, además, podría envolver el resultado en parseInt()
para transformar el elemento en un tipo entero? .
it(''convert string to array'', function () {
expect(''0,1''.replace('','', '''').split('''')).toEqual([''0'',''1''])
});
En general, puede utilizar la función de coincidencia.
const str = ''1,2,3,4'';
const strArr = str.match(//d/g);
console.log(strArr[0])
Esto se logra fácilmente en ES6 ;
Puede convertir cadenas a Arrays con Array.from(''string'') ;
Array.from("01")
será console.log
[''0'', ''1'']
Que es exactamente lo que estás buscando.
Más ejemplos de "Pruébalo tú mismo" a continuación.
Definición y uso El método split () se utiliza para dividir una cadena en una matriz de subcadenas y devuelve la nueva matriz.
Sugerencia: si se utiliza una cadena vacía ("") como separador, la cadena se divide entre cada carácter.
Nota: el método split () no cambia la cadena original.
var res = str.split(",");
Otra opción que usa el ES6 es usar la sintaxis de propagación .
var convertedArray = [..."01234"];
var stringToConvert = "012";
var convertedArray = [...stringToConvert];
console.log(convertedArray);
Para los miembros de una matriz simple como eso, puedes usar JSON.parse
.
var array = JSON.parse("[" + string + "]");
Esto te da una matriz de números.
[0, 1]
Si usas .split()
, terminarás con una matriz de cadenas.
["0", "1"]
Solo tenga en cuenta que JSON.parse
lo limitará a los tipos de datos compatibles. Si necesita valores como undefined
o funciones, necesitará usar eval()
o un analizador de JavaScript.
Si desea usar .split()
, pero también desea un Array of Numbers, puede usar Array.prototype.map
, aunque tendría que cambiarlo para IE8 e inferior o simplemente escribir un bucle tradicional.
var array = string.split(",").map(Number);
Para los miembros de una matriz simple como eso, puedes usar JSON.parse.
var listValues = "[{/"ComplianceTaskID/":75305,/"RequirementTypeID/":4,/"MissedRequirement/":/"Initial Photo Upload NRP/",/"TimeOverdueInMinutes/":null}]";
var array = JSON.parse("[" + listValues + "]");
Esto te da una matriz de números.
ahora tu valor de variable es como array.length = 1
Valor de salida
array[0].ComplianceTaskID
array[0].RequirementTypeID
array[0].MissedRequirement
array[0].TimeOverdueInMinutes
Quito los caracteres ''['', '']'' y hago una división con '',''
let array = stringObject.replace(''['','''').replace('']'','''').split(",").map(String);
Si la cadena ya está en formato de lista, puede usar JSON.parse:
var a = "[''a'', ''b'', ''c'']";
a = a.replace(/''/g, ''"'');
a = JSON.parse(a);
Split (",") puede convertir cadenas con comas en una matriz de cadenas, aquí está mi fragmento de código.
var input =''Hybrid App, Phone-Gap, Apache Cordova, HTML5, JavaScript, BootStrap, JQuery, CSS3, Android Wear API''
var output = input.split(",");
console.log(output);
["Aplicación híbrida", "Intervalo telefónico", "Apache Cordova", "HTML5", "JavaScript", "Correa de arranque", "JQuery", "CSS3", "API de uso de Android"]
use la función de mapa incorporada con una función anónima, así:
string.split('','').map(function(n) {return Number(n);});
[editar] Así es como lo usarías
var string = "0,1";
var array = string.split('','').map(function(n) {
return Number(n);
});
alert( array[0] );
Split en el ,
carácter;
var string = "0,1";
var array = string.split(",");
alert(array[0]);
var i = "[{a:1,b:2}]",
j = i.replace(/([a-zA-Z0-9]+?):/g, ''"$1":'').replace(/''/g,''"''),
k = JSON.parse(j);
console.log(k)
// => declarar expresión regular
[a-zA-Z0-9] => coincide con todas las az, AZ, 0-9
(): => agrupar todos los elementos coincidentes
$ 1 => cadena de reemplazo se refiere al primer grupo de coincidencia en la expresión regular.
g => bandera global