gpt4 book ai didi

javascript - 过滤对象的数组属性而不改变对象本身

转载 作者:行者123 更新时间:2023-11-28 17:14:54 25 4
gpt4 key购买 nike

我想过滤对象的属性而不改变对象。

let myObject = {
propA: [1,2,3],
propB: "foo"
}

现在我想做一些类似的事情:

myObject.propA.filter(el => el === 2)

但这只返回一个过滤后的数组,我必须写

myObject.propA = myObject.propA.filter(el => el === 2)

为了改变我的对象。

但是这根本不是我想要的!我想生成一个新的过滤对象而不改变旧的对象。有人可以帮我吗?

最佳答案

您可以filter()该数组,然后将其与原始对象合并以创建一个新对象,而无需改变原始对象。像这样的东西:

let myObject = {
propA: [1,2,3],
propB: "foo"
}
let propA = myObject.propA.filter(el => el === 2)
let newobj = {...myObject, propA}

// new Object
console.log("New:", newobj)

// old object unchanges
console.log("Old:", myObject)

关于javascript - 过滤对象的数组属性而不改变对象本身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53716356/

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