【问题标题】:How to remove a property from array of objects [duplicate]如何从对象数组中删除属性[重复]
【发布时间】:2021-06-18 19:05:41
【问题描述】:

我有一组具有nameage 属性的对象:

[
  { name: "Matthew", age: 23 },
  { name: "James", age: 20 }, 
  { name: "Daniel", age: 25 },
  { name: "Joshua", age: 22 }
]

我想从所有对象中删除 age 属性并在控制台中打印

[
  { name: "Matthew" },
  { name: "James" }, 
  { name: "Daniel" },
  { name: "Joshua" }
]

【问题讨论】:

    标签: javascript arrays object


    【解决方案1】:

    遍历您的数组并使用 delete 关键字。

    let array = [
      { name: "Matthew", age: 23 },
      { name: "James", age: 20 }, 
      { name: "Daniel", age: 25 },
      { name: "Joshua", age: 22 }
    ]
    array.forEach(function(v){ delete v.age });
    console.log(array);

    【讨论】:

      【解决方案2】:

      你可以使用map函数来实现。

      let output = test.map(({name}) => ({name}));

      如果您想使用多个对象进行过滤,您可以在 name 之后添加,例如 {name, salary}

      var test =[
        { name: "Matthew", age: 23 },
        { name: "James", age: 20 }, 
        { name: "Daniel", age: 25 },
        { name: "Joshua", age: 22 }
      ];
      let output = test.map(({name}) => ({name}));
      console.log(JSON.stringify(output, null, 2));

      【讨论】:

        【解决方案3】:
        const newData = oldData.map(item=>({name:item.name}))
        

        【讨论】:

        • 这样我们的问题是,如果数组对象有其他键,开发者不想删除其他键,而只想删除“年龄”属性。您的解决方案将失败。
        猜你喜欢
        • 2019-12-12
        • 2016-09-10
        • 1970-01-01
        • 2019-03-11
        • 2012-05-17
        • 2014-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多