Мы массив n объектов одинаковой структуры. Сама структура объекта неизвестна (типы полей, их уровень вложения). Поля в объекте могут быть другими сложными объектами, типом Date, string, number, boolean.
Есть объект такой же структуры, но с типами полей boolean. Используется для задания правил преобразований (если значение поля true - то поле должно быть в результирующем массиве). Также есть объект с типами полей string, в которых хранятся локализованные заголовки полей. Названия полей, в которых хранятся локализованные заголовки, соответствующие пути в поле в объекте, в котором хранится его значение.
Необходимо написать код, который на основе вышеописанных объектов создаст массив объектов следующей структуры:
{
name: "заголовок поля",
value1: "значение поля в объекте №1",
value2: "значение поля в объекте №2",
...
value [n-1]: 'значение поля в объекте № [n-1] ",
value [n]: "значение поля в объекте № [n]"
}
Если поле типа boolean - то выводить его значение в виде Да / Нет, дату выводить в формате dd.MM.yyyy
Предусмотреть вариант, для поля может отсутствовать локализация. В таком случае вместо локализации необходимо вывести название этого поля.
пример:
[{
fullName {
surname: "xxx", firstName: "yyy", middleName: "zzz"
}}
{
fullName {
surname: "XXX", firstName: "YYY", middleName: "ZZZ"
}}] - массив объектов
{FullName {surname: true, firstName: true, middleName: false}} - правило преобразований
{ "FullName.surname": "Фамилия", "fullName.middleName": "Отчество"} - локализации
[{Name: "Фамилия", value1: "xxx", value2: "XXX"},
{Name: "firstName", value1: "yyy", value2: "YYY"}] - результат