繁体   English   中英

使用具有不同键值对的 typescript 从另一个对象数组创建对象数组

[英]create an array of objects from another array of objects using typescript with different key value pair

我有像这样的 JSON 格式我不知道如何从不同的 object 数组创建新的对象数组

[
   {
      "description":"microsoftLocation",
      "icon":"Marker",
      "data_id":"123",
      "reference":"_1_microsoftOffice",
      "id":1,
      "text":"microsoftOffice"
   },
   {
      "description":"facebookOffice",
      "icon":"Marker",
      "data_id":"456",
      "reference":"_2_facebookOffice",
      "id":2,
      "text":"_2_microsoftOffice"
   },
]

我希望 output 看起来像这样,但不确定如何获得动态 url

[
   {
      "url":"http://localhost:3000/layer?text=microsoftLocation&data_id=123",
      "text":"microsoftLocation",
      "active":true,
      "icon":Marker
   },
   {
      "url":"http://localhost:3000/layer?text=facebookOffice&data_id=123",
      "text":"facebookOffice",
      "active":true,
      "icon":Marker
   },
]

只需使用map方法即可将 map 从原始 object 属性转换为新属性。

 const array = [ { "description":"microsoftLocation", "icon":"Marker", "data_id":"123", "reference":"_1_microsoftOffice", "id":1, "text":"microsoftOffice" }, { "description":"facebookOffice", "icon":"Marker", "data_id":"456", "reference":"_2_facebookOffice", "id":2, "text":"_2_microsoftOffice" }, ]; console.log(array.map(obj => ({ icon: obj.icon, active: true, text: obj.description, url: `http://localhost:3000/layer?text=${obj.description}&data_id=${obj.data_id}`})))

您可以使用 map 来做到这一点,如下所示:

 const data = [{ "description": "microsoftLocation", "icon": "Marker", "data_id": "123", "reference": "_1_microsoftOffice", "id": 1, "text": "microsoftOffice" }, { "description": "facebookOffice", "icon": "Marker", "data_id": "456", "reference": "_2_facebookOffice", "id": 2, "text": "_2_microsoftOffice" }, ]; const newData = data.map(el => ({ url: `http://localhost:3000/layer?text=${el.description}&data_id=${el.data_id}`, text: el.description, active: true, icon: el.icon })); console.log(newData);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM