我正在寻找最短的方法来转换一个字符串
"str1,str2,str3,..."
进入数组数组,如:
[["str1"], ["str2"], ["str3"]]
我可以使用循环或每个,但我想知道是否有更优雅的东西。
我正在寻找最短的方法来转换一个字符串
"str1,str2,str3,..."
进入数组数组,如:
[["str1"], ["str2"], ["str3"]]
我可以使用循环或每个,但我想知道是否有更优雅的东西。
您可以像这样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()
并非在所有实现中都存在,请查看本文以获取更多信息。
如果您的目标是支持 ES5 的浏览器,您可以使用Array.map。
var array = "str1,str2,str3".split(",").map(function(token) {
return [token]
});
汤姆沃尔特的回答很好,但如果你不想使用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];
});