2016-08-03 13 views
0

Ich habe einen Prozess, der 4 verschiedene Informationen zurückgibt, jedes Stück durch ein Sternchen (*) getrennt. Zum Beispiel, kehrt der Code so etwas wie:Wie kann ich eine Zeichenfolge mit JavaScript trennen und jedem Teil des Strings Werte zuweisen?

Boy * 15 * Winter * Silvester

Ich mag diese Zeichenfolge in einzelnen aufzuspalten und Werte zuweisen jedes Stück.
So etwas wie folgt aus:

var gender = Boy 
var age = 15 
var favoriteSeason = Winter 
var favoriteHoliday = New Years 

Aber ich diese Variablen nicht hartcodiert werden soll.

Gibt es eine Möglichkeit, dies mit Javascript zu tun?

+0

Split die Zeichenfolge auf dem Stern und Karte dann das Array in ein Array, das die Reihenfolge von Daten enthält. '['Geschlecht', 'Alter', ...]' in diesem Fall. – Shilly

Antwort

0

Verwenden split(), um die Zeichenfolge zu brechen:

s = 'Boy*15*Winter*New Years'; 
a = s.split('*'); 
gender = s[0]; 
age = int(s[1]) 
favoriteSeason = s[2]; 
favoriteHoliday = s[3]; 
0

var str = "Boy*15*Winter*New Years"; 
 

 
var array = str.split("*"); 
 

 
var gender = array[0]; 
 
var age = array[1]; 
 
var favoriteSeason = array[2]; 
 
var favoriteHoliday = array[3]; 
 

 
console.log(gender, age, favoriteSeason, favoriteHoliday)

1

In ES6, können Sie dies mit destructuring trivialer Weise tun:

const [gender, age, favoriteSeason, favoriteHoliday] = 'Boy*15*Winter*New Years'.split('*'); 

In ES5, Sie muss es ein wenig abbilden, kann es aber Erstellen von Objekten ziemlich leicht:

var chunks = 'Boy*15*Winter*New Years'.split('*'); 
return { 
    gender: chunks[0], 
    age: chunks[1], 
    favoriteSeason: chunks[2], 
    favoriteHoliday: chunks[3], 
}; 

So oder so, ist der Kern String.prototype.split mit Separator.

1

ES2015 Version:

const [gender, age, favoriteSeason, favoriteHoliday] = yourVar.split('*');