首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将字符串直接拆分成变量

将字符串直接拆分成变量
EN

Stack Overflow用户
提问于 2010-08-19 21:47:32
回答 3查看 70.5K关注 0票数 58

我想知道标准JS是否提供了一种在初始声明时将字符串直接拆分成一组变量的方法。例如,在Perl中,我会使用:

代码语言:javascript
复制
my ($a, $b, $c) = split '-', $str;

在Firefox中,我可以编写

代码语言:javascript
复制
var [a, b, c] = str.split('-');

但这种语法不是ECMAScript第5版的一部分,因此在所有其他浏览器中都会中断。我想要做的是避免不得不写:

代码语言:javascript
复制
var array = str.split('-');
var a = array[0];
var b = array[1];
var c = array[2];

因为对于我目前正在编写的代码来说,这样的方法将是一个真正的痛苦,我从7个不同的拆分中创建了20个变量,并且不想使用这样一个冗长的方法。

有没有人知道一种优雅的方法来做到这一点?

EN

回答 3

Stack Overflow用户

发布于 2010-08-19 22:09:20

代码语言:javascript
复制
var str = '123',
    array = str.split('');

(function(a, b, c) {
    a; // 1
    b; // 2
    c; // 3
}).apply(null, array)
票数 9
EN

Stack Overflow用户

发布于 2019-02-19 16:49:49

对于3个或更多单词的句子,将字符串拆分为两个部分的变量。

代码语言:javascript
复制
> var [firstName, lastName] = 'Ravindra Kumar Padhi'.split(/(\w+)$/)

> console.log({firstName: firstName.trim(), lastName: lastName.trim()})
{ firstName: 'Ravindra Kumar', lastName: 'Padhi' }
票数 6
EN

Stack Overflow用户

发布于 2010-08-19 22:11:14

您可以创建一个函数,该函数将遍历由str.split方法创建的数组,并以这种方式自动生成变量:

代码语言:javascript
复制
function autoGenerateVarFromArray(srcArray, varNamePrefix)
{
  var i = 0
  while(i < srcArray.length)
  {
    this[varNamePrefix +'_' + i] = srcArray[i]; 
    i++;
  } 
}

下面是一个如何使用它的示例:

代码语言:javascript
复制
var someString = "Mary had a little Lamb";
autoGenerateVarFromArray(someString.split(' '), 'temp');

alert(this.temp_3); // little
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3522406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档