gpt4 book ai didi

javascript - 是否有可能使传播运算符忽略未定义的属性

转载 作者:行者123 更新时间:2023-12-05 04:45:45 25 4
gpt4 key购买 nike

<分区>

鉴于以下

[{ a: 5, b: 2 }, { a: 2, b: 5 }].map(x => {
return {
...x,
b: undefined
}
})

我想以这样的方式结束

[{a:5},{a:2})

这可能吗?我知道我可以做类似的事情

[{ a: 5, b: 2 }, { a: 2, b: 5 }].map(x => {
const obj = {
...x,
}
delete obj.b
return obj
})

[{ a: 5, b: 2 }, { a: 2, b: 5 }].map(x => {
return {
a: x.a
}
})

第一种方法导致值被设置为“未定义”。第二种方法对于较大的数组来说似乎很浪费,因为创建了一个新变量对象,而且我的 typescript 也提示它,因为原始属性不是可选的。如果您只想保留少量属性,第三种方法是可行的,但是一旦它只保留了几个属性,它就显得笨拙了。对于我目前的情况,我可能会选择第二种方法,但我很好奇是否有一种方法可以更优雅地处理这个问题。

我知道我也可以这样做:

Object.keys(obj).forEach(key => obj[key] === undefined && delete obj[key])

但是看起来还是不够优雅。

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