我的主要对象如下所示:
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);