JavaScript Object.sign仅用于一个属性而不制作副本



,假设我们有对象 a = { prop1:"something", schema:{ array:[array of object] } } B是 b = { array:[array of object] }

,在对象数组中,它们的对象几乎具有不同的值。我想创建一个新的对象,并使用a.schema从b with object.assign更新。因此,我写了类似 Object.assign({},a.schema,b)的东西,它给我返回了这个 { schema: { array:[array of object] } } 。我想要这个 newObject = { prop1:"something", schema:{ array:[array of object from b] } } 我想创建一个看起来像单个对象中的看起来像a的新对象。

这是您可以做什么的一个示例:

x = {a:1,b:[1,2,3}} y = {c:[4,5,6]} z=Object.assign({},{prop1:x.a},{shcema:y.c})

如果使用酱语法是正确的,则可以做到这一点:

const a = {
  prop1: 'something',
  schema: {
    array: [
      {
      	aprop: 'prop',
      },
    ],
  },
};
const b = {
  array: [
    {
      bprop: 'test',
    },
    {
      bprop: 'test2',
    },
  ],
};
const updated = {
  ...a,
  schema: b,
};
console.log(updated);

最新更新