web-dev-qa-db-fra.com

Convertir une chaîne avec des virgules en tableau

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?

320
Scott

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);
605
I Hate Lazy

Split le sur le caractère ,;

var string = "0,1";
var array = string.split(",");
alert(array[0]);
104
Alex K.

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.

78
Ray Kim

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);
51
otaviodecampos

Convertir tout type de chaîne

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/

Résultat en console

enter image description here

Certaines pratiques ne supportent pas les chaînes d'objet

- 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"}"]
23
Andi AR

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
18
Raghav Chaubey

Vous pouvez utiliser split

Référence: http://www.w3schools.com/jsref/jsref_split.asp

"0,1".split(',')

17
dm03514

Une autre option utilisant l'ES6 utilise la syntaxe Spread.

var convertedArray = [..."01234"];

var stringToConvert = "012";
var convertedArray  = [...stringToConvert];
console.log(convertedArray);
15
Abhinav Galodha

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] );
10
Dan Mantyla

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(",");
3
HAROONMIND

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"]

0
Hitesh Sahu

Je supprime les caractères '[', ']' et fais une scission avec ','

let array = stringObject.replace('[','').replace(']','').split(",").map(String);
0
Samuel Ivan
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

0
KARTHIKEYAN.A

Exemple utilisant Array.filter:

var str = 'a,b,hi,ma,n,yu';

var strArr = Array.prototype.filter.call(str, eachChar => eachChar !== ',');
0
Abhimanyu

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:

  1. Split () - Pas de séparateur:
  2. Séparateur de chaîne vide ():
  3. Split () - Séparateur au début/à la fin:
  4. Séparateur d'expressions régulières:
  5. Capture des parenthèses:
  6. Split () avec argument limite

    découvrez ce lien ==> https://www.tutsmake.com/javascript-convert-string-to-array-javascript/

0
Developer