0

次の形式で文字列を返すjavascript関数があります:

User,5
Group,6

この文字列を以下のような2次元配列に変換したいのですが、どうすればそれを実現できますか?

[['user,5],['Group',6]]
4

4 に答える 4

4

改行または空白で分割し、コロンで分割するようにマップする必要があります。

str.split("\n").map(function(e) { return e.split(',') });

編集: 2 番目のものを整数にしたい場合は、parseInt を使用して変換します。

str.split("\n").map(function(e) {
   var arr = e.split(',');
   arr[1] = parseInt(arr[1], 10);
   return arr;
});

注意: ECMA Script 5 をサポートしていないブラウザーでは、ブラウザー間の互換性を維持するためにマップをインストールする必要があります。これをコードに追加することでそれを行うことができます

if (!('map' in Array.prototype)) {
  Array.prototype.map= function(mapper, that /*opt*/) {
    var other= new Array(this.length);
    for (var i= 0, n= this.length; i<n; i++)
        if (i in this)
            other[i]= mapper.call(that, this[i], i, this);
    return other;
  };
}
于 2012-07-11T07:13:56.203 に答える
1
var myBigString= "  ";

var str1 =str.split("\n");
var myarr; 
for(var i=0;i<str1.length;i++) {
   var str2 =str.split(",");
      for(var j=0;j<str2.length;j++) {
            myarr[i] = str2[j]
       }
}
于 2012-07-11T07:17:59.363 に答える
0

例として、その後にコンマで区切られた文字列を使用します。

     VAR STR11="User,5";
 VAR STR22="GROUP,6";
    VAR STR=STR11.split(",");
     VAR STR1=STR22.split(",");
    var items = [[STR[0],STR[1]],[STR1[0],STR1[1]]];
于 2012-07-11T07:10:26.080 に答える
0

これを試して

function convert(s) {
  s.split("\n").map(function(s1){
    var splits = s1.split(",")
    splits[1] = parseInt(splits[1])
    return splits
  }
}

*関数から返された文字列が "User,5\nGroup,6"

于 2012-07-11T07:18:04.847 に答える