我很难删除每个用户对象上的键值对。
我一直在使用delete方法尝试删除密码对象,因为这样返回delete Object.keys(users.password)
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'}
]
*/发布于 2019-05-15 12:51:50
您可以使用map()进行破坏。从map()中重新构造要删除的属性并返回rest属性
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"]))
发布于 2019-05-15 12:54:42
可以使用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"))
发布于 2019-05-15 12:51:27
您可以使用Array.map函数,然后对每个条目调用delete
function deleteManyPasswords(users) {
return users.map((user) => {
delete user.password;
return user;
});
}https://stackoverflow.com/questions/56149744
复制相似问题