JavaScript:分割为多个变量

4
如果在Python中,我可以这样做:

可能有重复:
可能从数组中分配给多个变量吗?

如果在Python中,我可以这样做:

x = "Hi there and hello there"
v1, v2, v3, v4, v5 = x.split(" ")

但我不确定如何在JavaScript中实现它。


简而言之:没有相应的功能。我来自Ruby,我们也被这些功能宠坏了。 - Joshua Pinter
5个回答

5
你可以使用JavaScript .split 将其转换为数组。
例如:
x = "Hi there and hello there";
var array = x.split(" ");

然后,你所有的变量都会像下面这样存储在数组中。
array[0]
array[1]
array[2]

你可以使用console.log或者alert来展示这个结果。
console.log(array[0]);
alert(array[0]);

References

http://www.tizag.com/javascriptT/javascript-string-split.php


5
您所询问的是JavaScript1.7中的“解构赋值”功能。不幸的是,并非所有浏览器都支持JS 1.7功能(例如,Chrome执行标记为JS 1.7的代码,但目前尚不支持此功能)。
您的代码将在Firefox上运行(只要将其标记为JS 1.7并进行轻微修改),但在Chrome上则无法正常工作。
要查看此操作,请使用以下 Firefox
<script type="application/javascript;version=1.7"/>
    x = "Hi there and hello there"
    var [v1, v2, v3, v4, v5] = x.split(" ")
</script>

这很整洁,也是我期望的分割方式。(由于我已经使用perl很长时间了,我喜欢这种简单的方法)。可惜只有firefox支持 :( - Anshul
哇塞,这在Google Apps Script中可行!你甚至可以像这样省略不需要的部分:var [, component, method] = arguments.callee.name.split('_'); - toddmo

1

Split 返回一个数组。

var x = "Hi there and hello there"
var v = x.split(" ")
console.log(v[0]);
console.log(v[1]);

1
如果您可以将变量附加到一个对象上,那么您可以这样做:
var stringToWords = function (str) {
if (typeof str === "string") {
    var stringsArray = str.split(" "),
        stringsSet = {};

    for (var i = 0, wordsNumber = stringsArray.length; i < wordsNumber; i++) {
        stringsSet['str' + (i + 1)] = stringsArray[i];
    }

    return stringsSet;
} else { 
    return str + " is not a string!!!"}

};

// 这将返回一个带有所需字符串的对象

var allStringWords = stringToWords("Hi there and hello there");

//然后你可以通过以下方式访问一个单词:

allStringWords.str1

但我相信有更短的方法来达到同样的目的


1

split函数将字符串分割成一个字符串数组。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接