簡體   English   中英

匹配javascript中的object並賦值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM