Comment puis-je convertir une chaîne en un tableau JavaScript?
Regardez le code:
var string = "0,1";
var array = [string];
alert(array[0]);
Dans ce cas, alert
afficherait un 0,1
. Lorsqu'il s'agirait d'un tableau, un 0
s'afficherait et, lorsque alert(array[1]);
serait appelé, le 1
apparaitrait.
Existe-t-il une chance de convertir une telle chaîne en un tableau JavaScript?
Pour des membres de groupe simples comme celui-ci, vous pouvez utiliser JSON.parse
.
var array = JSON.parse("[" + string + "]");
Cela vous donne un tableau de nombres.
[0, 1]
Si vous utilisez .split()
, vous obtiendrez un tableau de chaînes.
["0", "1"]
Sachez simplement que JSON.parse
vous limitera aux types de données pris en charge. Si vous avez besoin de valeurs telles que undefined
ou de fonctions, vous devez utiliser eval()
ou un analyseur JavaScript.
Si vous voulez utiliser .split()
, mais vous voulez aussi un tableau de nombres, vous pouvez utiliser Array.prototype.map
, bien que vous deviez le caler pour IE8 et les versions antérieures ou simplement écrire une boucle traditionnelle.
var array = string.split(",").map(Number);
Split le sur le caractère ,
;
var string = "0,1";
var array = string.split(",");
alert(array[0]);
Ceci est facilement réalisé dans ES6 ;
Vous pouvez convertir des chaînes en tableaux avec Array.from ('string') ;
Array.from("01")
sera console.log
['0', '1']
C'est exactement ce que vous recherchez.
Si la chaîne est déjà au format liste, vous pouvez utiliser le fichier JSON.parse:
var a = "['a', 'b', 'c']";
a = a.replace(/'/g, '"');
a = JSON.parse(a);
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/
- 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"}"]
Pour des membres de groupe simples comme celui-là, vous pouvez utiliser JSON.parse.
var listValues = "[{\"ComplianceTaskID\":75305,\"RequirementTypeID\":4,\"MissedRequirement\":\"Initial Photo Upload NRP\",\"TimeOverdueInMinutes\":null}]";
var array = JSON.parse("[" + listValues + "]");
Cela vous donne un tableau de nombres.
maintenant votre valeur de variable est comme array.length = 1
Valeur de sortie
array[0].ComplianceTaskID
array[0].RequirementTypeID
array[0].MissedRequirement
array[0].TimeOverdueInMinutes
Une autre option utilisant l'ES6 utilise la syntaxe Spread.
var convertedArray = [..."01234"];
var stringToConvert = "012";
var convertedArray = [...stringToConvert];
console.log(convertedArray);
utilisez la fonction de carte intégrée avec une fonction anonyme, comme ceci:
string.split(',').map(function(n) {return Number(n);});
[edit] voici comment vous l'utiliseriez
var string = "0,1";
var array = string.split(',').map(function(n) {
return Number(n);
});
alert( array[0] );
Plus d'exemples "Essayez-le vous-même" ci-dessous.
Définition et utilisation La méthode split () permet de scinder une chaîne en un tableau de sous-chaînes et renvoie le nouveau tableau.
Conseil: Si une chaîne vide ("") est utilisée comme séparateur, elle est divisée entre chaque caractère.
Remarque: La méthode split () ne modifie pas la chaîne d'origine.
var res = str.split(",");
Split (",") peut convertir des chaînes avec des virgules en un tableau de chaînes, voici mon extrait de code.
var input ='Hybrid App, Phone-Gap, Apache Cordova, HTML5, JavaScript, BootStrap, JQuery, CSS3, Android Wear API'
var output = input.split(",");
console.log(output);
["Hybrid App", "Phone-Gap", "Apache Cordova", "HTML5", "JavaScript", "BootStrap", "JQuery", "CSS3", "AndroidAPI d'usure"]
Je supprime les caractères '[', ']' et fais une scission avec ','
let array = stringObject.replace('[','').replace(']','').split(",").map(String);
var i = "[{a:1,b:2}]",
j = i.replace(/([a-zA-Z0-9]+?):/g, '"$1":').replace(/'/g,'"'),
k = JSON.parse(j);
console.log(k)
// => déclarer une expression régulière
[a-zA-Z0-9] => correspond à tous a-z, A-Z, 0-9
(): => regroupe tous les éléments correspondants
$ 1 => la chaîne de remplacement fait référence au premier groupe de correspondances dans l'expression régulière.
g => indicateur global
Exemple utilisant Array.filter
:
var str = 'a,b,hi,ma,n,yu';
var strArr = Array.prototype.filter.call(str, eachChar => eachChar !== ',');
Comment convertir une chaîne séparée par des virgules en un tableau en JavaScript?
var string = 'hello, world, test, test2, rummy, words';
var arr = string.split(', '); // split string on comma space
console.log( arr );
//Output
["hello", "world", "test", "test2", "rummy", "words"]
Pour plus d'exemples de conversion de chaînes en tableaux en javascript, utilisez les méthodes suivantes:
Split () avec argument limite
découvrez ce lien ==> https://www.tutsmake.com/javascript-convert-string-to-array-javascript/