javascript - 使用javascript从现有对象创建一个对象

标签 javascript arrays object ecmascript-6

我有嵌套的对象数组,我想在其中创建一个格式的对象 -合并所有来自cn_from,将所有cn_to与相应的id合并到新对象。 我想知道如何使用 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;
}

输入:

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


预期输出:

[{
  "id": "trans",
  "source": ["TH","IN"],
  "target": ["AU", "CA"]
},{
  "id": "fund",
  "source": ["US"],
  "target": ["GB", "PL"]
}]

最佳答案

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

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

关于javascript - 使用javascript从现有对象创建一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57605026/

相关文章:

javascript - HTML,JavaScript : on button click validation not working

android - 从资源中获取 android 字符串数组中的数据

javascript - 一次返回数组的 x 项

c - 使用指针对数组进行排序 - C 编程

Java:我的新对象实例化正在更改以前的对象引用

javascript - React - 如何映射嵌套对象值?

javascript - Angularjs 路由 : Cannot read property 'path' of undefined

javascript - PhoneGap 禁用缓存

javascript - "XMLHttpRequest is not a constructor"错误,与 Mozilla 文档在浏览器 chrome 中的用法相反

java - 当参数超出范围时,如何在另一个类中创建对象?