1

ここに、X および Y 形式の配列を変換するコードがあります。

だから私のコード:

var tacke = response.routes[0].overview_path,
    newTacke = [[]];
for(var i = 0, len = overviewPath.length; i < len; i++) {
    newTacke[0].push({
       X: tacke[i].lat(),
       Y: tacke[i].lng()
    });
}

配列tackeを次の形式から newArrayに変換newTackeします。

TACKE format

[
  [56.789, 12.34],
  [123.45, 87.65]
]

フォーマットするには:

newTACKE format

[
  [
    {
      X: 12.34
      Y: 56.789
    },
    {
      X: 87.65,
      Y: 123.45
    }
  ]
]

newTackeしたがって、次のような古い形式になっている場合に変換するソリューションが必要ですtacke

var tacke = response.routes[0].overview_path,というわけで、新しいフォーマットに変形するためにやったのですが、

今、私はそれをtackeフォーマットでバックアップする必要があるので、次のようになります:

  [
          [56.789, 12.34],
          [123.45, 87.65]
        ]

それを行う方法はありますか?

だから今、配列形式newTackeに戻すだけですtacke

4

4 に答える 4

2

これにより、すべてのプロパティに対して Points という名前のクラスから JsonArray が作成されます

Potints= function (x,y){
this.X=x;
this.Y=y;
this.MakeJson=function() {
return JSON.stringify(this);
}
}
var JsonArry=new Array();
for(var i = 0, len = overviewPath.length; i < len; i++) {
  ObjPoints=new Potints(tacke[i].lat(),tacke[i].lng());
  JsonArry.push(ObjPoints.MakeJson());
    });
}
于 2013-10-19T10:17:28.310 に答える
2

newTackle 形式が与えられた場合:

 newTackle = [
  [
    {
      X: 12.34,
      Y: 56.789
    },
    {
      X: 87.65,
      Y: 123.45
    }
  ]
];

次の方法で古い形式に戻すことができます。

tackle  = newTackle[0].map(function(k){
    return [k.Y, k.X];
});

そして結果:

 console.log(tackle)
 // [
 //        [56.789, 12.34],
 //        [123.45, 87.65]
 // ]
于 2013-10-19T10:41:13.523 に答える
1

newTackeの最初のメンバーにアクセスして配列を取得できるように見えます。次に、その配列を反復処理して、さまざまな対を取得します。

// pseudo code

oldTacke = []
for pair in newTacke[0]   # we iterate on [{X Y} {X Y} {X Y}]:
    # pair is now { X Y }
    oldTacke.append([ pair.X, pair.Y ])
于 2013-10-19T10:15:44.373 に答える