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]
        ]

有没有办法做到这一点?

所以现在只是newTacketacke数组格式返回

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 回答
1

你的问题让我很困惑..无论如何..如果你的 newTacke 像下面的格式..这将工作..

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

oldTacke = [] ;

newTacke.forEach(function (el,i,arr) {
  oldTacke.push([el[0].X, el[0].Y] , [el[1].X, el[1].Y] ) ;
});
console.log(oldTacke); // [[12.34, 56.789], [87.65, 123.45]]

如果这不是您所期望的..请澄清您的答案..

于 2013-10-19T10:28:32.413 回答