Применить функцию к значениям, ключи которых совпадают в другом массиве - PullRequest
0 голосов
/ 06 марта 2019

У меня есть form.value, как показано ниже

 form.value = {
  "to_date": "2019-03-21T05:00:00.000Z",
  "from_date": "2019-03-13T05:00:00.000Z",
  "is_form": ""
  "errors":""
}

У меня есть массив, как показано ниже

filterArray = [
  "from_date",
  "to_date"
]

Я хочу перебрать ключи объекта form.value и применить функцию(converFormat()) по значению ключей, которые совпадают в массиве фильтров, как показано ниже

  form.value = {
  "to_date": "2019-03-21T05:00:00.000Z",       // apply a function() over value since key is present in the filterArray
  "from_date": "2019-03-13T05:00:00.000Z",     // apply a function() over value since key is present in the filterArray
  "is_form": ""                               
  "errors":""                                  
}

1 Ответ

0 голосов
/ 06 марта 2019
Object.keys(form.value).filter(key => filterArray.includes(key)).forEach(key => {
  form.value[key] = myFunction(form.value[key])
})

// Or if you want to cache the value in some other variable

const customFormValue = {
  ...form.value,
  ...Object.keys(form.value)
    .filter(key => filterArray.includes(key))
    .reduce(
      (pr, curr) => ({
        ...pr,
        [curr]: myFunction(form.value[curr])
      }),
      {}
    )
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...