![](/img/trans.png)
[英]React replacing array of objects with a new array of objects of the same type
[英]Replacing a nested array inside an array of objects with new array of objects
这是我的数据文档的结构
{
"_id": "6287a6c5975a25cc25e095b0",
"userName": "Robot",
"projectName": "TestProject",
"projectTypeName": "fixed project",
"profitMargin": 50,
"versions": [
{
"ver": 0,
"data": [
{
"totalResources": 2,
"costToCompany": 31000,
"profitToCompany": 15500,
"costToClient": 46500,
"resources": [
{
"genericDesignationName": "Development",
"designationName": "Backend Developer",
"departmentName": "web development",
"calculationFactor": 1,
"_id": "6287a6c5975a25cc25e095b3"
}
],
"addOns": [
{
"genericDesignationName": "Design",
"designationName": "Graphic Designer",
"addOnCost": 30000,
"_id": "6287a6c5975a25cc25e095b4"
}
],
"_id": "6287a6c5975a25cc25e095b2"
}
],
"_id": "6287a6c5975a25cc25e095b1",
"createdAt": "2022-05-20T14:33:41.335Z",
"updatedAt": "2022-05-20T14:33:41.335Z"
},
{
"ver": 1,
"data": [
{
"totalResources": 4,
"costToCompany": 2200,
"profitToCompany": 1100,
"costToClient": 3300,
"resources": [
{
"genericDesignationName": "Development",
"designationName": "Backend Developer",
"departmentName": "web development",
"calculationFactor": 1,
"_id": "6287a6de975a25cc25e095c2"
},
{
"genericDesignationName": "Development",
"designationName": "Frontend Developer",
"departmentName": "web development",
"calculationFactor": 1,
"_id": "6287a6de975a25cc25e095c3"
}
],
"addOns": [
{
"genericDesignationName": "Design",
"designationName": "Graphic Designer",
"addOnCost": 100,
"_id": "6287a6de975a25cc25e095c4"
},
{
"genericDesignationName": "Design",
"designationName": "UI/UX Designer",
"addOnCost": 100,
"_id": "6287a6de975a25cc25e095c5"
}
],
"_id": "6287a6de975a25cc25e095c1"
}
],
"_id": "6287a6de975a25cc25e095c0",
"createdAt": "2022-05-20T14:34:06.794Z",
"updatedAt": "2022-05-20T14:34:06.794Z"
}
],
"createdAt": "2022-05-20T14:33:41.335Z",
"updatedAt": "2022-05-20T14:34:06.795Z",
"__v": 1
}
我的问题是如何用来自客户端的新值替换 version[1].data[] ..
新数据看起来像
"data": [
{
"totalResources": 4,
"costToCompany": 2200,
"profitToCompany": 1100,
"costToClient": 3300,
"resources": [
{
"genericDesignationName": "Development",
"designationName": "Backend Developer",
"departmentName": "web development",
"calculationFactor": 1,
},
{
"genericDesignationName": "Development",
"designationName": "Frontend Developer",
"departmentName": "web development",
"calculationFactor": 1,
}
],
"addOns": [
{
"genericDesignationName": "Design",
"designationName": "Graphic Designer",
"addOnCost": 100,
}
],
}
],
}
]
您可以通过迭代versions
数组来简单地实现这一点:
const data = { versions: [{ ver: 0, data: [] }, { ver: 1, data: [] }, { ver: 2, data: [] }] }; const replacedData = ['abc']; data.versions.forEach(obj => { if (obj.ver === 1) { obj.data = replacedData } }); console.log(data);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.