【问题标题】:How to build a new object from another nested object [duplicate]如何从另一个嵌套对象构建新对象[重复]
【发布时间】:2019-08-28 14:22:40
【问题描述】:

我有一个类似下面结构的大对象。

[
  {
    "Name": "xxx",
    "Company": "Google",
    "Type": "Search",

  },
  {
    "Name": "yyy",
    "Company": "MS",
    "Type": "Search",
  }
]

我正在尝试获取名称、类型等字段,并且我想构建一个新对象。

var newArray = [];
newArray.push = [ { 
object[0].Name,
object[0].Type } ]

像这样,但有什么方法可以通过使用迭代来实现?

谢谢。

【问题讨论】:

标签: javascript arrays json object


【解决方案1】:

您可以使用map 并获取所需的键并使用所需的键和值构建一个新对象

let obj = [{"Name": "xxx","Company": "Google","Type": "Search",},{"Name": "yyy","Company": "MS","Type": "Search",}]

let op =obj.map(({Name,Type}) => ({Name,Type}))

console.log(op)

【讨论】:

  • map 即使对象输出来自JSON.Stringify 也有效?
  • @rɑːdʒɑ 你可以通过JSON.parse 访问map
【解决方案2】:

你可以拿走想要的财产。

var source = [{ Name: "xxx", Company: "Google", Type: "Search" }, { Name: "yyy", Company: "MS", Type: "Search" }],
    target = source.map(({ Name, Type }) => ({ Name, Type }));
    
console.log(target);
.as-console-wrapper { max-height: 100% !important; top: 0; }

或者获取不需要的属性和其余部分。

var source = [{ Name: "xxx", Company: "Google", Type: "Search" }, { Name: "yyy", Company: "MS", Type: "Search" }],
    target = source.map(({ Company, ...rest }) => rest);
    
console.log(target);
.as-console-wrapper { max-height: 100% !important; top: 0; }

【讨论】:

    【解决方案3】:

    使用map:

    const data = [{"Name": "xxx","Company": "Google","Type": "Search",},{"Name": "yyy","Company": "MS","Type": "Search"}];
    const obj = data.map(({ Name, Type }) => ({ Name, Type }));
    console.log(obj);
    .as-console-wrapper { max-height: 100% !important; top: auto; }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-17
      • 1970-01-01
      • 2022-11-03
      • 2020-12-21
      • 1970-01-01
      • 1970-01-01
      • 2012-09-14
      相关资源
      最近更新 更多