首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用javascript从现有对象创建对象

使用javascript从现有对象创建对象
EN

Stack Overflow用户
提问于 2019-08-22 16:23:16
回答 3查看 77关注 0票数 1

我有嵌套的对象数组,在其中我想创建一个格式为-combine所有从cn_from的对象,组合所有的cn_to与各自的id到新的对象。我想知道如何使用javascript

已尝试

代码语言:javascript
复制
var result = getObj(obj);
getObj(obj) {
    var getallsrc = obj.map(e => e.cn_from.map(i => [i.cn]));
    var getalltar = obj.map(e => e.cn_to.map(i => [i.cn]));
    var newobj = [];
    newobj.push({ source:getallsrc });
    newobj.push({ source:getalltar });
    return newobj;
}

输入:

代码语言:javascript
复制
  var obj = [
   {
    "id": "trans",
    "cn_from":[{
      "cn": "TH",
      "ccy": "THB"
    },{
      "cn": "IN",
      "ccy": "INR"
    }],
    "cn_to":[{
      "cn": "AU",
      "ccy": "AUD"
    },{
      "cn": "CA",
      "ccy": "CAD"
    }]
   },
   {
    "id": "fund",
    "cn_from":[{
      "cn": "US",
      "ccy": "USD"
    }],
    "cn_to":[{
      "cn": "GB",
      "ccy": "GBP"
    },{
      "cn": "PL",
      "ccy": "PLD"
    }]
   }
]

预期输出:

代码语言:javascript
复制
[{
  "id": "trans",
  "source": ["TH","IN"],
  "target": ["AU", "CA"]
},{
  "id": "fund",
  "source": ["US"],
  "target": ["GB", "PL"]
}]
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-08-22 16:31:30

它将为您提供您期望的输出。

代码语言:javascript
复制
obj.map(x => ({ id: x.id, source: x.cn_from.map(x => x.cn), target: x.cn_to.map(x => x.cn) }))
票数 2
EN

Stack Overflow用户

发布于 2019-08-22 16:29:08

您希望idsourcetarget都在同一个对象中-使用如下所示的简单内容。还要确保在obj上使用map,因为它是一个数组。

代码语言:javascript
复制
function getObj(obj) {
  return obj.map(({ id, cn_from, cn_to }) => ({ id, source: cn_from.map(({ cn }) => cn), target: cn_to.map(({ cn }) => cn)}));
}
票数 0
EN

Stack Overflow用户

发布于 2019-08-22 16:31:43

代码语言:javascript
复制
function getObj(obj) {

  return obj.map((e) => {
    return {
      id: e.id,
      source: e.cn_from.map((x) => x.cn),
      target: e.cn_to.map((x) => x.cn)
    };
  });
}

var obj = [{
    "id": "trans",
    "cn_from": [{
      "cn": "TH",
      "ccy": "THB"
    }, {
      "cn": "IN",
      "ccy": "INR"
    }],
    "cn_to": [{
      "cn": "AU",
      "ccy": "AUD"
    }, {
      "cn": "CA",
      "ccy": "CAD"
    }]
  },
  {
    "id": "fund",
    "cn_from": [{
      "cn": "US",
      "ccy": "USD"
    }],
    "cn_to": [{
      "cn": "GB",
      "ccy": "GBP"
    }, {
      "cn": "PL",
      "ccy": "PLD"
    }]
  }
];

console.log(getObj(obj))

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57605026

复制
相关文章

相似问题

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