你可以看到,如果你检查数据源它有一个键isEdit和一个布尔值。我们将数据源值与tempValues进行比较,因为您可以看到数据源中的列值与键在tempValues上。比较之后,我们检查数据源isEdit的值是true还是fals
如果isEdit的值为true,则从tempValues.dealIdleDetailsForFinanceDto获取值,例如NVB的isEdit值为true,则NVB的值从tempValues.dealIdleDetailsForFinanceDto为99,否则为20
检查最终输出值。
请参阅最终输出以进行比较。谢谢。
#数据1
dataSouce = [
{
"name": "NVB",
"value": 0,
"financeValue": 0,
"column": "nvb",
"isEdit": true
},
{
"name": "ROU",
"value": 0,
"financeValue": 0,
"column": "rou",
"isEdit": false
},
{
"name": "Net Present Value",
"value": 0,
"financeValue": 0,
"column": "netPresentValue",
"isEdit": false
},
]
# tempValues
tempValues = {
"transactionId": 20,
"nvb": 20,
"rou": 100,
"netPresentValue": 50,
"dealIdleDetailsForFinanceDto": {
"nvb": 99,
"rou": 4,
"netPresentValue": 88,
}
}
#最终输出示例
[
{
"name": "NVB",
"value": 99,
"financeValue": 20,
"column": "nvb",
"isEdit": true
},
{
"name": "ROU",
"value": 100,
"financeValue": 100,
"column": "rou",
"isEdit": false
},
{
"name": "Net Present Value",
"value": 88,
"financeValue": 50,
"column": "netPresentValue",
"isEdit": true
}
]
#示例代码const finalOutput = dataSource.map(item => {
// Look up the value in tempValues using the column property of the object
if(item.isEdit) {
}
const financeValue = tempValues[item.column];
// Return a new object with the updated value property
return {
...item,
financeValue,
};
});
假设dataSouce[2].isEdit = true
,并且这是问题中的拼写错误,那么下面的代码片段应该有所帮助。
dataSource = [
{
"name": "NVB",
"value": 0,
"financeValue": 0,
"column": "nvb",
"isEdit": true
},
{
"name": "ROU",
"value": 0,
"financeValue": 0,
"column": "rou",
"isEdit": false
},
{
"name": "Net Present Value",
"value": 0,
"financeValue": 0,
"column": "netPresentValue",
"isEdit": true
},
];
tempValues = {
"transactionId": 20,
"nvb": 20,
"rou": 100,
"netPresentValue": 50,
"dealIdleDetailsForFinanceDto": {
"nvb": 99,
"rou": 4,
"netPresentValue": 88,
}
};
const finalOutput = dataSource.map(item => {
const tempValue = tempValues[item.column];
const dealIdleDetailsValue = tempValues.dealIdleDetailsForFinanceDto[item.column];
return {
...item,
financeValue: tempValue,
value: item.isEdit ? dealIdleDetailsValue : tempValue
}
});
console.log(finalOutput);