私は次のような文字列を変換するための最短の方法を探しています
"str1,str2,str3,..."
次のような配列の配列に:
[["str1"], ["str2"], ["str3"]]
ループやそれぞれを使うこともできますが、もっとエレガントなものがあるのではないかと思います。
私は次のような文字列を変換するための最短の方法を探しています
"str1,str2,str3,..."
次のような配列の配列に:
[["str1"], ["str2"], ["str3"]]
ループやそれぞれを使うこともできますが、もっとエレガントなものがあるのではないかと思います。
ES5をサポートするブラウザをターゲットにしている場合は、Array.mapを使用できます。
var array = "str1,str2,str3".split(",").map(function(token) {
return [token]
});
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()
すべての実装に存在するわけではありません。詳細については、この記事を確認してください。
トム・ウォルターの答えは素晴らしいですが、使用したくない場合は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
ポリフィルを追加して、古いブラウザのサポートを追加することもできます。
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];
});