![](/img/trans.png)
[英]How to convert an array into a JavaScript object with specific names for each key
[英]how convert array to object with specific key in javascript
我有一個下面格式的大數組
[
{
id: '1',
name: "bloh",
coordinates: [[51.3888562, 35.7474398], [51.388671,35.7470575],[51.3887346, 35.7470375]]
},
{
id: '2',
name: "blohbloh",
coordinates: [[51.3888562, 35.7474398],[51.3822271, 35.7444575]]
}
]
我想將所有元素的坐標屬性格式轉換為以下格式
{
id: '1',
name: "bloh",
coordinates:[{longitude:51.3888562,latitude: 35.7474398},{longitude:51.3887346,latitude: 35.7470375}]
},
{
id: '2',
name: "blohbloh",
coordinates:[{longitude:51.3888562,latitude: 35.7474398},{longitude:51.3822271,latitude: 35.7444575}]
}
您應該能夠使用map做到這一點:
let input = [{id: '1', name: "bloh", coordinates: [[51.3888562, 35.7474398], [51.388671,35.7470575],[51.3887346, 35.7470375]]},{id: '2', name: "blohbloh",coordinates: [[51.3888562, 35.7474398],[51.3822271, 35.7444575]]}]; let result = input.map(({id, name, coordinates}) => { return { id, name, coordinates: coordinates.map(([latitude,longitude]) => { return { latitude, longitude}})}; }); console.log("Result: ", result);
您可以遍歷數組,然后需要使用map將坐標的表示形式從數組更改為對象。
您可以使用以下代碼進行轉換。
var arr=[{id: '1', name: "bloh", coordinates: [[51.3888562, 35.7474398], [51.388671,35.7470575],[51.3887346, 35.7470375]]},{id: '2', name: "blohbloh",coordinates: [ [51.3888562, 35.7474398],[51.3822271, 35.7444575]]}];
arr.forEach(elm=>elm.coordinates=elm.coordinates.map(c=>({longitude:c[0],latitude:c[1]})));
console.log(arr);
您可以使用兩個map()和解構操作,以將rest
對象的所有屬性復制到rest
變量中,然后將map()的坐標轉換為另一種格式:
const data = [{id: '1', name: "bloh", coordinates:[[51.3888562, 35.7474398], [51.388671,35.7470575],[51.3887346, 35.7470375]]},{id: '2', name: "blohbloh",coordinates:[[51.3888562, 35.7474398],[51.3822271, 35.7444575]]}]; const result = data.map(({ coordinates, ...rest }) => ({ ...rest, coordinates: coordinates.map(([longitude, latitude]) => ({ longitude, latitude })) }) ); console.log(result);
在遇到任何類型的問題時,首先,您應該了解您需要做什么,而更漂亮的數據將始終幫助您實現這一目標。
您要轉換為:
const original = [{
id: '1',
name: "bloh",
coordinates: [ [51.3888562, 35.7474398],
[51.388671,35.7470575],
[51.3887346, 35.7470375] ]
},
{
id: '2',
name: "blohbloh",
coordinates: [ [51.3888562, 35.7474398],
[51.3822271, 35.7444575] ]
}
]
對此:
{
id: '1',
name: "bloh",
coordinates:[
{longitude:51.3888562,latitude: 35.7474398},
{longitude:51.3887346,latitude: 35.7470375}
]
},
{
id: '2',
name: "blohbloh",
coordinates:[
{longitude:51.3888562,latitude: 35.7474398},
{longitude:51.3822271,latitude: 35.7444575}
]
}
我認為,我們將使用“ for”循環,因為它更容易看到正在發生的事情。
for(i in original){
original[i].coordinates = original[i].coordinates.map(item => {return {
latitude: item[0],
longitude: item[1]}
})
}
console.log(JSON.stringify(original))
您可以使用修飾符以更漂亮的方式查看數據,例如,使用以下資源: https : //jsonformatter.curiousconcept.com/
希望這會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.