如何使用JavaScript分隔字符串并为每个字符串赋值?

问题描述:

我有一个过程,返回4个不同的信息,每个部分用星号(*)分隔。例如,代码将返回类似:如何使用JavaScript分隔字符串并为每个字符串赋值?

男孩* 15 *冬季*新年

我想这个字符串分割成单独的和值分配给每一块。
因此,像这样:

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

但我不希望这些变量的硬编码。

有没有办法做到这一点使用JavaScript?

+0

拆分上星号的字符串,然后映射该数组到包含数据的顺序数组。 '['性别','年龄',...]'在这种情况下。 – Shilly

使用split()分手字符串:

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

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)

在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与您的分隔符。

ES2015版本:

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