首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用node.js使用公共属性合并两个javascript对象

使用node.js使用公共属性合并两个javascript对象
EN

Stack Overflow用户
提问于 2020-04-07 10:54:24
回答 1查看 36关注 0票数 0

我有两个对象,具有一些更相似的键值osmstartnode和osmendnode。我希望合并这两个对象,并获得具有congestion_level的新值的最终对象。

第一对象

代码语言:javascript
复制
var object = [{
    osmstartnode: 370705004,
    osmendnode: 1369956654,
    congestion_level: 1
  },
  {
    osmstartnode: 42469049,
    osmendnode: 42469053,
    congestion_level: 2
  }
];

第二对象

代码语言:javascript
复制
var roadobjt = [{
    "type": "Feature",
    "geometry": {
      "type": "LineString",
      "coordinates": [
        [-74.0048445, 40.7124759],
        [-74.0048533, 40.71245],
        [-74.0048604, 40.7124243],
        [-74.0048578, 40.7123974],
        [-74.0048468, 40.7123722],
        [-74.0048252, 40.7123472],
        [-74.0045725, 40.7121422]
      ]
    },
    properties: {
      "osmhighway": "motorway_link",
      "osmoneway": "yes",
      "osmwayid": 5669636,
      "osmstartnode": 370705004,
      "osmendnode": 1369956654,
      "speed_mean_mph": 16,
      "pct_from_freeflow": 72,
      "speed_freeflow_mph": 22
    }
  },
  {
    "type": "Feature",
    "geometry": {
      "type": "LineString",
      "coordinates": [
        [-73.99866284812883, 40.59729307801823],
        [-73.99879364640618, 40.59716957964474],
        [-73.99913817998096, 40.596844447960684],
        [-73.99931411513008, 40.596676614430145]
      ]
    },
    properties: {
      "osmname": "Bay Parkway",
      "osmhighway": "primary",
      "osmoneway": "no",
      "osmwayid": 5675398,
      "osmstartnode": 42469049,
      "osmendnode": 42469053,
      "speed_mean_mph": 20,
      "pct_from_freeflow": 67,
      "speed_freeflow_mph": 29
    }
  }
];
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-07 11:09:32

合并使用:

代码语言:javascript
复制
var object = [{
    osmstartnode: 370705004,
    osmendnode: 1369956654,
    congestion_level: 1
  },
  {
    osmstartnode: 42469049,
    osmendnode: 42469053,
    congestion_level: 2
  }
];

转化为以下性质:

代码语言:javascript
复制
var roadobjt = [{
    "type": "Feature",
    "geometry": {
      "type": "LineString",
      "coordinates": [
        [-74.0048445, 40.7124759],
        [-74.0048533, 40.71245],
        [-74.0048604, 40.7124243],
        [-74.0048578, 40.7123974],
        [-74.0048468, 40.7123722],
        [-74.0048252, 40.7123472],
        [-74.0045725, 40.7121422]
      ]
    },
    properties: {
      "osmhighway": "motorway_link",
      "osmoneway": "yes",
      "osmwayid": 5669636,
      "osmstartnode": 370705004,
      "osmendnode": 1369956654,
      "speed_mean_mph": 16,
      "pct_from_freeflow": 72,
      "speed_freeflow_mph": 22
    }
  },
  {
    "type": "Feature",
    "geometry": {
      "type": "LineString",
      "coordinates": [
        [-73.99866284812883, 40.59729307801823],
        [-73.99879364640618, 40.59716957964474],
        [-73.99913817998096, 40.596844447960684],
        [-73.99931411513008, 40.596676614430145]
      ]
    },
    properties: {
      "osmname": "Bay Parkway",
      "osmhighway": "primary",
      "osmoneway": "no",
      "osmwayid": 5675398,
      "osmstartnode": 42469049,
      "osmendnode": 42469053,
      "speed_mean_mph": 20,
      "pct_from_freeflow": 67,
      "speed_freeflow_mph": 29
    }
  }
];

用途:

代码语言:javascript
复制
roadobjt.map((r, i) => { r.properties = Object.assign(r.properties, object[i]); return r;})

结果:

代码语言:javascript
复制
[{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-74.0048445,40.7124759],[-74.0048533,40.71245],[-74.0048604,40.7124243],[-74.0048578,40.7123974],[-74.0048468,40.7123722],[-74.0048252,40.7123472],[-74.0045725,40.7121422]]},"properties":{"osmhighway":"motorway_link","osmoneway":"yes","osmwayid":5669636,"osmstartnode":370705004,"osmendnode":1369956654,"speed_mean_mph":16,"pct_from_freeflow":72,"speed_freeflow_mph":22,"congestion_level":1}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[-73.99866284812883,40.59729307801823],[-73.99879364640618,40.59716957964474],[-73.99913817998096,40.596844447960684],[-73.99931411513008,40.596676614430145]]},"properties":{"osmname":"Bay Parkway","osmhighway":"primary","osmoneway":"no","osmwayid":5675398,"osmstartnode":42469049,"osmendnode":42469053,"speed_mean_mph":20,"pct_from_freeflow":67,"speed_freeflow_mph":29,"congestion_level":2}}]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61078370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档