Фильтрация свойств объекта по значению свойства - PullRequest
0 голосов
/ 01 августа 2020

например, у меня есть объект с правилами проверки

validationRules = {
    planType: {
        group: 'personalData',
        required: true,
        messages: {
            required: 'Required Field'
        }
    },
    name: {
        group: 'personalData',
        required: true,
        pattern: /\w+\s+\w+/,
        messages: {
            required: 'Required Field',
            pattern: 'Insert first and last names'
        }
    },
}

Мне нужно проверить мастер форм по шагам, поэтому мне нужно создать функцию только для проверки каждого шага

function isStepValid() {

    console.log(lastActiveNav);
    const currentStep = lastActiveNav.getAttribute('data-pane');
    var stepRules = validationRules.filter(currentStep); // wont work cause not an array
    console.log(stepRules); // this is the value in the group property in the validationRules



    for (let key in validationRules) {    

        
    }
}

Я хочу l oop только через свойства со значением в свойстве группы, которое соответствует. К сожалению, я могу найти ответ только с помощью массива с фильтром.

1 Ответ

1 голос
/ 01 августа 2020
const currentStep = lastActiveNav.getAttribute('data-pane');

Object.keys(validationRules)
  .map(key => validationRules[key])
  .filter(validationRule => validationRule.group === currentStep)
  .forEach(validationRule => {  // forEach/map/reduce depending what you want to do
    // Code here
  })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...