如何使用JavaScript分隔字符串并为每个字符串赋值?
问题描述:
我有一个过程,返回4个不同的信息,每个部分用星号(*)分隔。例如,代码将返回类似:如何使用JavaScript分隔字符串并为每个字符串赋值?
男孩* 15 *冬季*新年
我想这个字符串分割成单独的和值分配给每一块。
因此,像这样:
var gender = Boy
var age = 15
var favoriteSeason = Winter
var favoriteHoliday = New Years
但我不希望这些变量的硬编码。
有没有办法做到这一点使用JavaScript?
答
使用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('*');
拆分上星号的字符串,然后映射该数组到包含数据的顺序数组。 '['性别','年龄',...]'在这种情况下。 – Shilly