gpt4 book ai didi

JavaScript - 传播和休息语法以从对象中删除特定属性

转载 作者:数据小太阳 更新时间:2023-10-29 05:43:53 24 4
gpt4 key购买 nike

我有一个对象如下:

let obj = {foo: 1, bar: 2, baz: 3}

我想通过调用一个将要删除的属性名称作为参数的方法来删除特定属性

removeProperty(obj, propertyName) {
let { propertyName, _, ...result } = obj
return result
}

问题是这个方法只有当我们直接在语法中写属性名称时才有效,比如:let { bar, _, ...result } = obj 。但是它将其作为参数传递不起作用,因为语法 spead 将其创建为新变量

我们如何做到这一点,如果可能的话,除了 lodash 的 omit 之外,还有其他解决方案

最佳答案

您可以在解构中使用计算属性:

let obj = {foo: 1, bar: 2, baz: 3}
function removeProperty(obj, propertyName) {
let { [propertyName]: _, ...result } = obj
return result
}
console.log(removeProperty(obj, 'foo'));

这会将名称为 propertyName 的属性分配给一次性变量,并实质上删除该键。参见 the MDN documentation .

关于JavaScript - 传播和休息语法以从对象中删除特定属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53753276/

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