Javascript 以不可变方式更新其值为对象数组的对象

Javascript 以不可变方式更新其值为对象数组的对象,javascript,reactjs,typescript,immutability,Javascript,Reactjs,Typescript,Immutability,我需要更新React组件中的状态: 该州的情况如下: const state = { '123': [{ progress: 0; lastModified: 999; }, { progress: 0; lastModified: 666; }], '1234': [{

我需要更新React组件中的状态:

该州的情况如下:

const state = {
    '123': [{
                progress: 0;
                lastModified: 999;
            },
            {
                progress: 0;
                lastModified: 666;
            }],
    '1234': [{
                progress: 0;
                lastModified: 111;
            },
            {
                progress: 0;
                lastModified: 222;
            }]            
};
鉴于我知道对象键,例如
123
,我想更新
进度
值,因为我还知道用于查找对象的
lastModified


如何以不变的方式进行此操作?

您需要为要修改的对象的所有祖先创建新容器

const knownTarget='123';
常数knownLastModified=666;
常数变化={
进展:100
}
常量状态={
'123': [{
进展:0,
更新日期:999,
},
{
进展:0,
最后修改:666,
}
],
'1234': [{
进展:0,
最后修改:111,
},
{
进展:0,
最后修改:222,
}
]
};
const newState={…state,
[knownTarget]:状态[knownTarget]。映射(项=>{
如果(item.lastModified==knownLastModified){
返回{
…项目,
…变化
};
}
退货项目;
})
}
console.log(状态);

console.log(newState)
您知道更新的值
lastModified
吗?是的,它是已知的这回答了您的问题吗?