2013-10-19 40 views
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陣列格式

回答

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

這從一個名爲點爲它的所有類作出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()); 
    }); 
} 
+1

ü可能需要改變X, X到另一個名字,因爲idont知道javascript是CASESENSITIVE或不是:D –

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

如果這不是你expect..please澄清你的答案是什麼..

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] 
// ] 
+0

+1:這實際上更乾淨,可能比我最初的想法更快。 @DrCode,你會很好地接受這個答案。 – LSerni