Реагировать Объект значений Добавить в Массив объектов - PullRequest
1 голос
/ 27 сентября 2019

У меня есть объект, который я пытаюсь назначить различным элементам массива.

Я пытался использовать .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}

Я хотел бы иметь возможность добавлять значение параметра к параметрам в качестве элемента значения для элементов, имеющих тот же параметр (метку), что и элемент в массиве.

Ожидаемый результат

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"}];

Любая помощь с благодарностью!Спасибо

Ответы [ 2 ]

1 голос
/ 27 сентября 2019
 const updatedParameters = parameters.map(it => ({ ...it, value: parameterValues[it.parameter] }));

Используйте параметр для поиска значения в списке параметров.

0 голосов
/ 27 сентября 2019

Если я понимаю, вы хотите сохранить исходный массив, но изменить объекты, которые в нем содержатся.В этом случае 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})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...