我在删除每个用户对象上的键值对时遇到困难
我一直在使用delete方法来尝试删除密码对象
返回delete Object.keys(users.password)
function deletePassword(newUsers) {
/*
This function take an array of user objects and deletes the password key value pair on each user object.
答案 0 :(得分:4)
您可以将map()
用于解构。解构要删除的属性,并从map()
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()
,您将获得对象的结果数组。
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"]))
答案 1 :(得分:1)
您可以使用delete
键删除属性。
在下面看看。
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"))
答案 2 :(得分:0)
您可以使用Array.map
函数,然后在每个单独的条目上调用delete
function deleteManyPasswords(users) {
return users.map((user) => {
delete user.password;
return user;
});
}