【问题标题】:React Object of values Add to Array of objects反应值对象添加到对象数组
【发布时间】:2019-09-27 05:04:17
【问题描述】:

我有一个对象,我试图将其分配给数组的不同元素。

我尝试过使用 .map() 和 objectKeys()/objectValues(),但仍然无法弄清楚。

变量

const parameters = [{key: "0", label: "Turbidity", parameter: "turbidity", unit: "NTU"}, {key: "1", label: "Total Hardness", parameter: "totalHardness", unit: "as CaCO3"}, {key: "2", label: "Total Phosphorus", parameter: "totalPhosphorus", unit: "mg/L"}, {key: "3", label: "Total Nitrogen", parameter: "totalNitrogen", unit: "mg/L"} ];

const parameterValues = {turbidity: 2.1, totalHardness: 254}

我希望能够将 parameterValues 添加到参数中,作为值项添加到与数组中的元素具有相同参数(标签)的元素中。

预期结果

const updatedParameters = [{key: "0", label: "Turbidity", parameter: "turbidity", unit: "NTU", value: "2.1"}, {key: "1", label: "Total Hardness", parameter: "totalHardness", unit: "as CaCO3", value: "254"}, , {key: "2", label: "Total Phosphorus", parameter: "totalPhosphorus", unit: "mg/L"}, {key: "3", label: "Total Nitrogen", parameter: "totalNitrogen", unit: "mg/L"}];

非常感谢任何帮助!谢谢

【问题讨论】:

    标签: javascript arrays reactjs sorting object


    【解决方案1】:
     const updatedParameters = parameters.map(it => ({ ...it, value: parameterValues[it.parameter] }));
    

    使用参数在参数列表中查找值。

    【讨论】:

    • @JonasWilms 非常感谢您!最后有一个额外的括号,但这正是我所需要的。我真的很感激。
    【解决方案2】:

    如果我理解,您想保留原始数组,但更改它包含的对象。在这种情况下,Array.find() 可能会有所帮助。

    const parameters = [{key: "0", label: "Turbidity", parameter: "turbidity", unit: "NTU"}, {key: "1", label: "Total Hardness", parameter: "totalHardness", unit: "as CaCO3"}, {key: "2", label: "Total Phosphorus", parameter: "totalPhosphorus", unit: "mg/L"}, {key: "3", label: "Total Nitrogen", parameter: "totalNitrogen", unit: "mg/L"} ]
    
    const addParameterValues = (valueObject) => {
      Object.keys(valueObject).forEach(key => {
        const parameter = parameters
          .find(obj => obj.parameter === key)
        parameter.value = valueObject[key]
      }
    }
    
    addParameterValues({turbidity: 2.1, totalHardness: 254})
    

    【讨论】:

      猜你喜欢
      • 2019-10-02
      • 2016-05-26
      • 1970-01-01
      • 2019-06-16
      • 2022-01-13
      • 2018-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多