Javascript 如何拆分和分配2个单词?

Javascript 如何拆分和分配2个单词?,javascript,string,split,Javascript,String,Split,我用两个词来形容这个短语: var phrase = "hello world" 我想拆分和分配如下: var words = phrase.split(" "); var word1 = words[0]; var word2 = words[1]; 有没有比这三条线更简单的方法 [更新] 我想在一行中找到一种方法,比如: var word1 word2 = phrase.split(" "); 有可能吗?我不是JavaScript专家,但看看你的代码,我认为你可以提高效率 您的代码调用

我用两个词来形容这个短语:

var phrase = "hello world"
我想拆分和分配如下:

var words = phrase.split(" ");
var word1 = words[0];
var word2 = words[1];
有没有比这三条线更简单的方法

[更新]

我想在一行中找到一种方法,比如:

var word1 word2 = phrase.split(" ");

有可能吗?

我不是JavaScript专家,但看看你的代码,我认为你可以提高效率

您的代码调用split两次,这意味着原始字符串必须被解析两次。虽然这可能不是什么大不了的事,但这类编程是合情合理的

因此,这样做通常会更有效:

var words = phrase.split(" ");
var word1 = words[0];
var word2 = words[1];

我唯一的建议是缓存分割的结果,而不是重新计算

var phrase = "hello world";
var splitPhrase = phrase.split(" ");
var word1 = splitPhrase[0];
var word2 = splitPhrase[1];
同样长,但可读性更强。为了回答你的问题,我认为不需要进入regex,上面的内容就足够简单了

更新

不幸的是,JavaScript没有Ruby那样的并行分配功能。就是

var word1,word2=phrase.split(“”)
不会将
word1
word2
分别设置为
words[0]
words[1]

相反,它会将word1和word2都设置为返回的数组[“hello”,“world”]

现在您可以使用返回的数组,而不是显式地将结果设置为变量并通过索引访问它们。这对于避免在字符串相当长的情况下创建大量变量特别有用。

不确定是否可以在“更少的行”中执行此操作,但肯定不需要执行两次拆分

 var words = "hello world".split(" "),
     word1 = words[0],
     word2 = words[1];
如果您正在使用(不仅仅是ECMAscript),则可以使用:


派对迟到了,但这里有一个我用过的单线结构

var word1, word2;
(function(_){ word1 = _[0]; word2 = _[1]; })(phrase.split(" "));

我更新了我的答案以回答您的最新问题。McStretch:它在任何实现Javascript 1.7的运行时都可用。我在Rhino上测试了它。仅仅去掉新的线条并不能使它成为一个衬里-是的,但我想在Javascript中使用“multivalue return”样式,这是我所能做到的。我把它读为,
[word1,word2]=phrase.split()
。看,一行。;-)
var [a, b] = "hello world".split(" ");
var word1, word2;
(function(_){ word1 = _[0]; word2 = _[1]; })(phrase.split(" "));