У меня есть две переменные, одна является объектом данных POST (две галочки, а вход по электронной почте):фильтров на основе массива объектов
{ _csrf: 'oWNyWOhgvRyEGafTTOO1Yiv78BfG0D1n+DLVA=',
activated: 'true',
notify: 'true',
email: '[email protected]' }
Другой, является шаблон файла конфигурации, который используется для генерации формы (где данные POST происходит от):
[{ displayName: 'Activated',
name: 'activated',
description: '',
type: 'Boolean',
defaults: { value: false, readOnly: false } }
{ displayName: 'Send Notifications',
name: 'notify',
description: '',
type: 'Boolean',
defaults: { value: false, readOnly: false } }
{ displayName: 'Notification Email',
name: 'email',
description: '',
type: 'String:Email',
defaults: { value: '', readOnly: false } }]
мне нужно фильтровать первый объект вниз к key: value
пару, где ключ присутствует в массиве (name: 'key'
).
Я пытаюсь использовать _.filter
и _.find
, однако, что я написал до сих пор успешно фильтрует объект, а только возвращает массив значений, без ключей:
const update = _.filter(req.body, function(val, name){
return _.find(_module.config, function(param){
return param.name == name;
});
});
// update = [ 'true', 'true', '[email protected]' ]
Наконец, мой последний вопрос заключается в том, что если один из флажков не установлен, в данных POST нет значения для этого ключа. В идеале, функция фильтра также должна устанавливать любые значения, которые она находит в шаблоне конфигурации, но не в данных до false
.