gpt4 book ai didi

javascript - JS : how to use Object. 将重复属性分配到对象数组中?

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

我正在尝试将一个对象中的键值对复制到数组内的每个不同对象中。

const propsToDuplicate = {
foo: 'foo',
bar: 'bar'
};

const items = [{
num: 1
},
{
num: 2
}
];

const result = items.map(item => {
console.log('item: ', item);
const moar = Object.assign(propsToDuplicate, item);
console.log('item with more stuff: ', moar);
return moar;
});

console.log(result);

问题:

  1. 为什么我最终会得到两个 num = 2 的对象实例?
  2. 如何执行此操作才能使最终结果如下?

期望的结果:

[ { foo: 'foo', bar: 'bar', num: 1 },
{ foo: 'foo', bar: 'bar', num: 2 } ]

这是沙箱:

https://repl.it/@montrealist/array-map-and-object-assign-weirdness

最佳答案

Object.assign(a, b, c) 将分配 abc 中的所有内容> 进入作为 assign() 第一个参数的对象。

在您的情况下,您使用 propsToDuplicate 作为第一个参数,这意味着每次调用 assign() 时,propsToDuplicate正在变异。

const moar = Object.assign(propsToDuplicate, item); 更改为 const moar = Object.assign({}, propsToDuplicate, item); 你应该是很高兴开始。

关于javascript - JS : how to use Object. 将重复属性分配到对象数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48215595/

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