我的主要对象如下所示:

const obj = {

    data: {
        'Puppies' : [],
        'Kittens': []
    }
};


我想为data.Puppies [0]中的数据字段分配一个值。

当我尝试使用Object.assign()执行此操作时,出现错误:

    Unexpected token, expected , (83:12)

  81 |
  82 |     return Object.assign({}, obj, {
> 83 |         data.Puppies[0]: list
     |             ^
  84 |     });
  85 | }
  86 |


我不确定如何完成任务。
我需要使用Object.assign(),因为我需要返回一个新对象而不是原始对象。我之所以这样做是因为ReactJS中的Redux缩减器。

最佳答案

您可以分配外部对象,并将索引为0的新内容分配给数组,而无需更改原始obj



const list = ['foo', 'bar'];
const obj = { data: { Puppies: [], Kittens: [] } };

console.log(Object.assign({}, obj, { data: { Puppies: Object.assign([], obj.data.Puppies, { 0: list }) } }));
console.log(obj);





Puppies的内容相同。



const list = ['foo', 'bar'];
const obj = { data: { Puppies: ['bar', 42], Kittens: [] } };

console.log(Object.assign({}, obj, { data: { Puppies: Object.assign([], obj.data.Puppies, { 0: list }) } }));
console.log(obj);

07-25 20:35