在JavaScript中将字符串转换为数组数组

时间:2013-03-08 15:35:42

标签: javascript arrays string

我正在搜索最短的方法来转换像

这样的字符串
"str1,str2,str3,..."

到一个数组数组中,如:

[["str1"], ["str2"], ["str3"]]

我可以使用循环或每个循环,但我想知道是否有更优雅的东西。

3 个答案:

答案 0 :(得分:2)

您可以像这样使用split()map()

// This could be turned into 1 line but is split here for readibility 
var array = string.split(',');

array = array.map(function(value){
    return [value];
});

注意: map()并非在所有实施中都存在,请查看this article以获取更多信息。

答案 1 :(得分:2)

如果您的目标是支持ES5的浏览器,则可以使用Array.map

var array = "str1,str2,str3".split(",").map(function(token) {
     return [token]
});

答案 2 :(得分:1)

Tom Walter's answer很棒,但如果您不想使用map

var str = "str1,str2,str3";
var arr = str.split(",");
var arrOfarrs = [];
for(var i = 0; i < arr.length; i++) {
  arrOfarrs.push([arr[i]]);
}

或者,您可以添加map polyfill以添加对旧版浏览器的支持:

Array.prototype.map = Array.prototype.map || function(fn) {
  var arr = [];
  for(var i = 0; i < this.length; i++) {
    arr.push(fn(this[i]));
  }
  return arr;
};

然后允许你做

var arr = str.split(",").map(function(val) {
  return [val];
});