微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将键分配给从数组创建的对象

如何解决将键分配给从数组创建的对象

我已经从以下数组创建了一个自定义对象

"result": [
               {
            "query": "NE30 1DP","result": {
                "postcode": "NE30 1DP","quality": 1,"eastings": 435958,"northings": 568671,"country": "England","nhs_ha": "north East","longitude": -1.439269,"latitude": 55.011303,"european_electoral_region": "north East","primary_care_trust": "north Tyneside","region": "north East","lsoa": "north Tyneside 016C","msoa": "north Tyneside 016","incode": "1DP","outcode": "NE30","parliamentary_constituency": "Tynemouth","admin_district": "north Tyneside","parish": "north Tyneside,unparished area","admin_county": null,"admin_ward": "Tynemouth","ced": null,"ccg": "NHS north Tyneside","nuts": "Tyneside","codes": {
                    "admin_district": "E08000022","admin_county": "E99999999","admin_ward": "E05001130","parish": "E43000176","parliamentary_constituency": "E14001006","ccg": "E38000127","ccg_id": "99C","ced": "E99999999","nuts": "UKC22"
        }
    ]

我创建的函数在下面

export const returnLatLonObj = (arr) => {
  return Object.fromEntries(
    arr.map(({ result: { latitude,longitude } }) => [latitude,longitude])
  );
};

这将返回以下对象

{
    "55.011303": -1.439269
}

但是,我想要的是一个看起来类似于以下内容的对象:

{
  "latitude": 55.011303,"longitude": -1.439269
}

我该如何实现?

解决方法

无需使用Object.fromEntries。仅使用Array.prototype.map生成一个新对象就足够了。

const arr = [{
  "query": "NE30 1DP","result": {
    "postcode": "NE30 1DP","quality": 1,"eastings": 435958,"northings": 568671,"country": "England","nhs_ha": "North East","longitude": -1.439269,"latitude": 55.011303,"european_electoral_region": "North East","primary_care_trust": "North Tyneside","region": "North East","lsoa": "North Tyneside 016C","msoa": "North Tyneside 016","incode": "1DP","outcode": "NE30","parliamentary_constituency": "Tynemouth","admin_district": "North Tyneside","parish": "North Tyneside,unparished area","admin_county": null,"admin_ward": "Tynemouth","ced": null,"ccg": "NHS North Tyneside","nuts": "Tyneside","codes": {
      "admin_district": "E08000022","admin_county": "E99999999","admin_ward": "E05001130","parish": "E43000176","parliamentary_constituency": "E14001006","ccg": "E38000127","ccg_id": "99C","ced": "E99999999","nuts": "UKC22"
    }
  }
}];

const returnLatLonObj = (arr) => {
  return arr.map(({ result: { latitude,longitude } }) => ({
    latitude,longitude
  }));
};

console.log(returnLatLonObj(arr));

,

具有正确赋值语法的简单map已经可以完成工作...

const sampleDataList = [{
  "query": "NE30 1DP","latitude": 55.011303
  },}];

// was ...
//
// /*export */const returnLatLonObj = (arr) => {
//  return Object.fromEntries(
//    arr.map(({ result: { latitude,longitude } }) => [latitude,longitude])
//  );
// };

// { "55.011303": -1.439269 }
// versus
// { "latitude": 55.011303,"longitude" :-1.439269 }

// should be ...
//
/*export */const returnLatLonObj = (arr) => {
  return arr.map(({ result: { latitude,longitude } }) =>
    ({ latitude,longitude })
  );
};

console.log(returnLatLonObj(sampleDataList));
.as-console-wrapper { min-height: 100%!important; top: 0; }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。