Javascript 将二维数组转换为对象
我有这个2d阵列Javascript 将二维数组转换为对象,javascript,arrays,node.js,reactjs,Javascript,Arrays,Node.js,Reactjs,我有这个2d阵列 "coordinates" : [ [ [ 41.5311338460033, -8.61901849508286 ], [ 41.5311338460033, -8.6185169219
"coordinates" : [
[
[
41.5311338460033,
-8.61901849508286
],
[
41.5311338460033,
-8.61851692199707
],
[
41.5312944769825,
-8.61851692199707
],
[
41.5312944769825,
-8.61901849508286
],
[
41.5311338460033,
-8.61901849508286
]
]
]
我想把它转换成
const paths = [
{ lat: 41.53113384600326, lng: -8.619018495082855 },
{ lat: 41.53113384600326, lng: -8.61851692199707 },
{ lat: 41.53129447698251, lng: -8.61851692199707 },
{ lat: 41.53129447698251, lng: -8.619018495082855 },
{ lat: 41.53113384600326, lng: -8.619018495082855 }
];
我试着用这种方法
let test = this.props.places.places.map(place => {
place.location.coordinates.map((c,i) => {
console.log('MAP TEST', c);
return {
lat: c[i],
lng: c[i]
};
});
});
console.log返回我的两个文档中的两个位置,但当我进行控制台测试时,我收到num。
有人知道如何将该数组转换为lat,lng对象吗?您访问数组的方式不对 如果是二维数组,可以尝试使用
const obj={
“坐标”:[
[
[41.5311338460033, -8.61901849508286],
[41.5311338460033, -8.61851692199707],
[41.5311338460033, -8.61851692199707],
[41.5311338460033, -8.61901849508286],
[41.5311338460033, -8.61901849508286],
],
[
[41.5311338460033, -8.61901849508286],
[41.5311338460033, -8.61851692199707],
[41.5311338460033, -8.61851692199707],
[41.5311338460033, -8.61901849508286],
[41.5311338460033, -8.61901849508286],
],
]
}
const path=obj.coordinates.map(cord=>cord.map(x=>({lat:x[0],lng:x[1]})).flat()
console.log(path)
记住坐标是来自我数据库的一个数组,我从其他文档中获得了更多坐标,我想在执行const obj时使用这些坐标,但我做不到here@FCorreiaconst obj
只是一个向您展示逻辑的示例。请检查我在示例中添加代码的地方的编辑。别忘了在.map