【问题标题】:match and assign value from array and objects从数组和对象中匹配并赋值
【发布时间】:2022-12-05 18:10:53
【问题描述】:

我有一个数据源数据,它是一个对象数组,它有列。我们如何将它与 tempValues 对象匹配并获取与 dataSource 上的列匹配的 tempValues 值。

最终输出在下面提供了最终输出应该是什么样子。谢谢。

#数据源

dataSouce = [
    {
        "name": "NVB",
        "value": 0,
        "financeValue": 0,
        "column": "nvb",
        "isEdit": false
    },
    {
        "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,
}

#最终输出

= [
    {
        "name": "NVB",
        "value": 20,
        "financeValue": 0,
        "column": "nvb",
        "isEdit": false
    },
    {
        "name": "ROU",
        "value": 100,
        "financeValue": 0,
        "column": "rou",
        "isEdit": false
    },
    {
        "name": "Net Present Value",
        "value": 50,
        "financeValue": 0,
        "column": "netPresentValue",
        "isEdit": false
    },
]

How can I match on value and then add value to object?

【问题讨论】:

    标签: javascript angular typescript


    【解决方案1】:

    要将 dataSource 数组中的对象与 tempValues 对象中的值匹配并将匹配值添加到对象,您可以迭代 dataSource 数组并使用每个对象的 column 属性来查找tempValues 对象中的相应值。然后,您可以使用来自 tempValues 的匹配值更新对象的 value 属性。

    这是您如何执行此操作的示例:

    const finalOutput = dataSource.map(item => {
      // Look up the value in tempValues using the column property of the object
      const value = tempValues[item.column];
      
      // Return a new object with the updated value property
      return {
        ...item,
        value
      };
    });
    

    这将产生以下 finalOutput 数组:

    [
      {
        "name": "NVB",
        "value": 20,
        "financeValue": 0,
        "column": "nvb",
        "isEdit": false
      },
      {
        "name": "ROU",
        "value": 100,
        "financeValue": 0,
        "column": "rou",
        "isEdit": false
      },
      {
        "name": "Net Present Value",
        "value": 50,
        "financeValue": 0,
        "column": "netPresentValue",
        "isEdit": false
      }
    ]
    
    

    此方法使用 Array.prototype.map() 方法通过迭代 dataSource 数组并通过添加来自 tempValues 的匹配值来转换每个对象来创建新数组。展开运算符 (...) 用于创建对象的浅表副本并更新复制对象中的值属性。

    【讨论】:

      猜你喜欢
      • 2022-12-20
      • 2014-07-11
      • 2018-10-21
      • 1970-01-01
      • 2013-01-02
      • 1970-01-01
      • 2015-07-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多