2016-08-03 58 views
0

我有一個過程,返回4個不同的信息,每個部分用星號(*)分隔。例如,代碼將返回類似:如何使用JavaScript分隔字符串併爲每個字符串賦值?

男孩* 15 *冬季*新年

我想這個字符串分割成單獨的和值分配給每一塊。
因此,像這樣:

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

但我不希望這些變量的硬編碼。

有沒有辦法做到這一點使用JavaScript?

+0

拆分上星號的字符串,然後映射該數組到包含數據的順序數組。 '['性別','年齡',...]'在這種情況下。 – Shilly

回答

0

使用split()分手字符串:

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

在ES6,你可以平凡與destructuring做到這一點:

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

在ES5,你需要將它映射一點,但可以創建對象很容易:

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

無論哪種方式,核心是String.prototype.split與您的分隔符。

1

ES2015版本:

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