首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除每个用户对象上的键值对

删除每个用户对象上的键值对
EN

Stack Overflow用户
提问于 2019-05-15 12:48:27
回答 3查看 2.7K关注 0票数 4

我很难删除每个用户对象上的键值对。

我一直在使用delete方法尝试删除密码对象,因为这样返回delete Object.keys(users.password)

代码语言:javascript
复制
function deleteManyPasswords(users) {
  /*
    This function take an array of user objects and deletes the password key value pair on each user object.
    E.g.
    [
      {name: 'Barry', password: 'ilovetea'},
      {name: 'Sandeep', password: 'ilovecoffee'},
      {name: 'Kavita', password: 'ilovepie'}
    ]
    Returns:
    [
      {name: 'Barry' },
      {name: 'Sandeep'},
      {name: 'Kavita'}
    ]
  */
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-05-15 12:51:50

您可以使用map()进行破坏。从map()中重新构造要删除的属性并返回rest属性

代码语言:javascript
复制
const arr = [ {name: 'Barry', password: 'ilovetea'}, {name: 'Sandeep', password: 'ilovecoffee'}, {name: 'Kavita', password: 'ilovepie'} ]

function deletePass(arr){
  return arr.map(({password,...rest}) => rest)
}
console.log(deletePass(arr))

上面的方法不适用于动态属性,因为您不能命名所有属性。为此,您可以使用以下方式]

  • 创建一个包含两个函数的函数。
    • 一组对象
    • 包含应该删除的键的数组。

  • 使用数组上的map()函数。
  • 使用Object.entries()获取每个对象的条目
  • 对条目使用filter(),检查要删除的键中是否没有密钥,然后将其移除
  • 对筛选的条目使用Object.fromEntries(),您将得到对象的结果数组。

代码语言:javascript
复制
const arr = [ {name: 'Barry', password: 'ilovetea'}, {name: 'Sandeep', password: 'ilovecoffee'}, {name: 'Kavita', password: 'ilovepie'} ]

function deleteProps(arr,keys){
   return arr.map(x => 
               Object.fromEntries(
                  Object.entries(x)
                  .filter(([k]) => !keys.includes(k))
               )
            )
}
console.log(deleteProps(arr,["password"]))

票数 5
EN

Stack Overflow用户

发布于 2019-05-15 12:54:42

可以使用delete键删除属性。

看看下面。

代码语言:javascript
复制
var data =[
    {name: 'Barry', password: 'ilovetea'},
    {name: 'Sandeep', password: 'ilovecoffee'},
    {name: 'Kavita', password: 'ilovepie'}
]

function removeKey(items, key){

    items.forEach(item=> {
        delete item[key]; // remove the attr eg Password
    });

    return items;
}

console.log(removeKey(data, "password"))

票数 1
EN

Stack Overflow用户

发布于 2019-05-15 12:51:27

您可以使用Array.map函数,然后对每个条目调用delete

代码语言:javascript
复制
function deleteManyPasswords(users) {
    return users.map((user) => {
        delete user.password;

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

https://stackoverflow.com/questions/56149744

复制
相关文章

相似问题

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