我有一个很大的数组,格式如下
[
{
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}]
}
答案 0 :(得分:2)
您应该可以通过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);
答案 1 :(得分:1)
您可以遍历数组,然后需要使用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);
答案 2 :(得分:1)
您可以使用两个map()和destructuring将顶级对象的所有属性复制到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);
答案 3 :(得分:0)
在遇到任何类型的问题时,首先,您应该了解您需要做什么,而更漂亮的数据将始终帮助您实现这一目标。
您要转换为:
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/
希望这会有所帮助。