javascript - 如何更改对象?
问题描述
如何使用点差更改对象?
export const list = [
{
id: 0,
tableName: 'example',
tasks: [
{
task_id: 0,
task_short: 'lorem',
task_full: 'lorem ipsum lorem ipsum lorem ipsum',
time_created: null,
time_changed: null,
},
{
task_id: 1,
task_short: 'andsf',
task_full: 'lorem ipsum tes tes est',
time_created: null,
time_changed: null,
}
]
}
]
在我的有效载荷中具有三个属性
case 'CHANGE_TASK':
///////update, ownId, parentId
例如,在更新中,我更改了任务 [0]
之后我无法解决如何更改和返回列表
解决方案
您可以执行以下操作来实现您正在寻找的东西。
但我可以保证这不是最佳做法,
保持你的状态正常化,不要嵌套对象。
const list = [{
id: 0,
tableName: 'example',
tasks: [{
task_id: 0,
task_short: 'lorem',
task_full: 'lorem ipsum lorem ipsum lorem ipsum',
time_created: null,
time_changed: null,
},
{
task_id: 1,
task_short: 'andsf',
task_full: 'lorem ipsum tes tes est',
time_created: null,
time_changed: null,
}
]
}]
const parentId = 0;
const ownId = 1;
const update = {
task_short: 'Updated andsf',
task_full: 'Updated lorem ipsum tes tes est',
}
const newList = list.map(item => {
if (item.id === parentId) {
return {
...item,
tasks: item.tasks.map(task => {
if (task.task_id === ownId) {
return {
...task,
...update,
}
}
return task;
})
}
}
return item;
})
console.log(newList)
推荐阅读
- java - websocket在春季演示项目中不起作用
- unity3d - 通过c#连接unity接口与mongodb的详细步骤
- javascript - 在用户可以交互的地方进行实时(动态系统)模拟
- oracle - 错误 38824:CREATE OR REPLACE 命令可能不会更改现有对象的 EDITIONABLE 属性
- python-3.x - 来自已解析网站的 UnicodeEncodeError (Python3)
- sql - 如何获得每月的第二个星期三
- jhipster - 创建 DTO 以从后端 JHipster 塑造数据
- react-native - 将图像从 React Native App 上传到 Google Cloud Storage
- apache-kafka - 在本地机器上运行 Kafka 脚本
- java - 在 java8 流中处理输出