这里我有一个代码可以在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
数组格式重新生成
答案 0 :(得分:2)
这将从一个名为Points的所有属性
的类中创建一个JsonArrayPotints= 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());
});
}
答案 1 :(得分: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]
// ]
答案 2 :(得分: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 ])
答案 3 :(得分: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]]
如果这不是你所期望的......请澄清你的答案..