0

私は次のような文字列を変換するための最短の方法を探しています

"str1,str2,str3,..."

次のような配列の配列に:

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

ループやそれぞれを使うこともできますが、もっとエレガントなものがあるのではないかと思います。

4

3 に答える 3

2

ES5をサポートするブラウザをターゲットにしている場合は、Array.mapを使用できます。

var array = "str1,str2,str3".split(",").map(function(token) {
     return [token]
});
于 2013-03-08T15:41:52.790 に答える
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()すべての実装に存在するわけではありません。詳細については、この記事を確認してください。

于 2013-03-08T15:40:11.170 に答える
1

トム・ウォルターの答えは素晴らしいですが、使用したくない場合は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];
});
于 2013-03-08T15:41:34.493 に答える