[英]match object in javascript and assign value
如您所見,如果您檢查數據源,它有一個鍵 isEdit 並且它有一個 boolean 值。 我們將 dataSouce 值與 tempValues 進行比較,因為您可以看到來自數據源的列值與 tempValues 上的鍵匹配。 比較之后,我們檢查數據源中的值 isEdit 是 true 還是 fals
如果 isEdit 的值為真,則從 tempValues.dealIdleDetailsForFinanceDto 獲取值,例如 NVB isEdit 值為真,因此來自 tempValues.dealIdleDetailsForFinanceDto 的 nvb 值為 99,否則為 20
檢查最終值 output。
請參閱最終 output 進行比較。 謝謝。
#數據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,
}
}
#Sample 最終 Output
[
{
"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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.