首页 > 解决方案 > 将二维数组转换为多行对象

问题描述

我试图将一个丑陋的数组转换为一个多行酷对象,但我的大脑让我失望了。我试图把这个丑陋的东西

"location" : {
        "type" : "Polygon",
        "coordinates" : [ 
            [ 
                [ 
                    -8.61901849508286, 
                    41.5311338460033
                ], 
                [ 
                    -8.61851692199707, 
                    41.5311338460033
                ], 
                [ 
                    -8.61851692199707, 
                    41.5312944769825
                ], 
                [ 
                    -8.61901849508286, 
                    41.5312944769825
                ], 
                [ 
                    -8.61901849508286, 
                    41.5311338460033
                ]
            ]
        ]
    },

对于这个惊人的事情:

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

我试过这个

const polygon = this.props.places.places.map(place => {
      return place.location.coordinates.map(([lat, lng]) => ({ lat, lng }));
    });

我试过 flat() 但我失败了。任何人都知道如何做到这一点?

标签: javascriptreactjs

解决方案


你可以这样做:

place.location.coordinates.map(
    (values) => values.map(
        (data) => {lat: data[0], lng: data[1]}
    )
);

推荐阅读