Javascript:从对象的嵌套数组获取值并将其设为对象键

时间:2020-06-11 14:53:14

标签: javascript node.js

我有一个这样的对象数组

{
  "data": [{
    "location": {
      "type": "Point",
      "coordinates": [
        77.361916,
        28.606075
      ]
    },
  }]
}

我想从中获取经度和纬度并将对象更改为类似这样的内容:

{
  "data": [{
    "latitude": 28.606075,
    "longitude": 77.361916,
  }]
}

我该如何实现?我尝试做

response.map((data: any) => {
  console.log(data.location);
  let latitude = data.location.coordinates[2];
  let longitude = data.location.coordinates[1];
  delete data.location;
  data.latitude = latitude;
  data.longitude = longitude;
})

我知道这是错误的,但是我该如何解决?

1 个答案:

答案 0 :(得分:2)

如果只有一套

const oldObj = {
  "data": [{
    "location": {
      "type": "Point",
      "coordinates": [
        77.361916,
        28.606075
      ]
    },
  }]
}
const [longitude, latitude] = [...oldObj.data[0].location.coordinates]
const newObj = {
  data: [{ latitude, longitude }]
}

console.log(newObj)

更多

const oldArr = [{ "data": [{ "location": { "type": "Point", "coordinates": [ 77.361916, 28.606075 ] }, }] }, { "data": [{ "location": { "type": "Point", "coordinates": [ 77.361916, 28.606075 ] }, }] }, { "data": [{ "location": { "type": "Point", "coordinates": [ 77.361916, 28.606075 ] }, }] } ]

const newArr = oldArr.map(item => {
  const [longitude, latitude] = [...item.data[0].location.coordinates];
  return {
    data: [{
      latitude,
      longitude
    }]
  }
})

console.log(newArr)