gpt4 book ai didi

javascript - 替代 lodash 省略

转载 作者:行者123 更新时间:2023-12-01 15:20:53 31 4
gpt4 key购买 nike

我想删除一个属性并返回一个新对象而不改变原始对象。
我知道我们可以像这样使用 Lodash 轻松做到这一点:

const profile = { name: 'Maria', age: 30 }
_.omit(profile, name) // it returns a new object without the property name {age: 30}
但是,我想知道是否可以使用 vanilla JavaScript 而不将该值分配给 undefined或使用 filter ?

最佳答案

对于单个 key ,您可以 destructure the object , 并使用 computed propertyrest创建一个没有属性的对象:

const omitSingle = (key, { [key]: _, ...obj }) => obj
const profile = { name: 'Maria', age: 30 }

const result = omitSingle('name', profile)

console.log(result)


要省略多个属性,可以将对象转换为 [key, value] 对,根据列出的键数组过滤对,然后通过 Object.fromEntries() 转换回对象:

const omit = (keys, obj) => 
Object.fromEntries(
Object.entries(obj)
.filter(([k]) => !keys.includes(k))
)

const profile = { name: 'Maria', gender: 'Female', age: 30 }

const result = omit(['name', 'gender'], profile)

console.log(result)

关于javascript - 替代 lodash 省略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59447415/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com