Поиск ошибок в объекте js

Помогите разобраться с задачей. Дан массив объектов, вида:

    [
  {
    param1: '',
    param2: 10,
    param3: 'text'
  },
  {
    param1: 'text',
    param2: 50,
    param3: ''
  }
]

Его необходимо проверить на пустые значения параметров и на то, что значения не больше 15. Вывести отчёт в другой массив вида:

    [
  {
    index: 1,
    errorItem: 'param1',
    reason: 'empty'
  },
  {
    index: 2,
    errorItem: 'param2',
    reason: 'big'
  },
  {
    index: 2,
    errorItem: 'param3',
    reason: 'empty'
  }
]

На пустоту нужно проверять каждый параметр, а на величину только param2.


Ответы (1 шт):

Автор решения: Александр Лесив

const arr = getArr();
const errors = checkErrors(arr);

console.log(errors);

function checkErrors(arr) {
  const errors = [];

  for (let i = 0; i < arr.length; i++) {
    const obj = arr[i];
    for (let key in obj) {
      if (obj[key] == '') {
        errors.push(buildErrorObj(i, key, 'empty'));
      };
    };
    if (obj.param2 > 15) {
      errors.push(buildErrorObj(i, 'param2', 'big'));
    };
  }
  return errors;
}

function buildErrorObj(index, errorItem, reason) {
  return ({
    index,
    errorItem,
    reason
  });
}

function getArr() {
  return (
    [{
        param1: '',
        param2: 10,
        param3: 'text'
      },
      {
        param1: 'text',
        param2: 50,
        param3: ''
      },
      {
        param1: 'text',
        param2: '',
        param3: 'text'
      }
    ]
  );
}

→ Ссылка