gpt4 book ai didi

javascript - 减少和对象解构/赋值

转载 作者:行者123 更新时间:2023-11-28 16:47:46 28 4
gpt4 key购买 nike

假设我有两个简单的对象,我想创建第三个对象来连接它们的属性。这非常有效:

(()=>{
const a1 = {a: 2, b: 3}
const b1 = {a: 100, c: 5}
return {...a1, ...b1}
})()
// { a: 100, b: 3, c: 5 }

但是一旦我尝试使用 .reduce 创建从 b1 派生的新对象,它就会停止工作。为了简单起见,我们创建一个reduce函数来简单地制作b1对象的浅拷贝:

let r = (()=>{
const a1 = {a: 2, b: 3}
const b1 = {a: 100, c: 5},
b2 = Object.entries(b1).reduce((acc, [key, value])=>Object.defineProperty(acc, key, {value}), {})
console.log(b2) // {a: 100 c: 5}
return {...a1, ...b2}
})()
console.log(r);// { a: 2, b: 3 }

我有一种感觉,.reduce 函数有一些我不明白的地方。我可以做什么来解决这个问题?

最佳答案

默认情况下,使用 defineProperty 创建的属性是不可枚举的,因此它们不会包含在跨页中。

修复:

b2 = Object.entries(b1).reduce((acc, [key, value]) =>
Object.defineProperty(acc, key, {value, enumerable: true})
, {})

关于javascript - 减少和对象解构/赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60379201/

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