Преобразование одного объекта в другой машинопись - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть один объект, подобный этому

jsonOne = [{
    "customer": {
      "emailAddress": "test@gmail.com"
    },
    "recommendationProductDetails": [{
      "productId": "4288",
      "title": "Title 1",
      "imageWebAddress": "http://url.com/GetImage/2956",
      "webAddress": "http://url.com/",
      "description": "Description 23"
    }, {
      "productId": "8888",
      "title": "Title 8",
      "imageWebAddress": "http://url.com/GetImage/2333",
      "webAddress": "http://url.com/",
      "description": "Description 55"
    }]
  },
  {
    "customer": {
      "emailAddress": "test33@gmail.com"
    },
    "recommendationProductDetails": [{
      "productId": "3333",
      "title": "Title 33",
      "imageWebAddress": "http://url.com/GetImage/333",
      "webAddress": "http://url.com/",
      "description": "Description 333"
    }, {
      "productId": "1111",
      "title": "Title 111",
      "imageWebAddress": "http://url.com/GetImage/111",
      "webAddress": "http://url.com/",
      "description": "Description 111"
    }]
  }
  ];

Что мне нужно преобразовать, чтобы выглядеть так

jsonData = [{
    "emailAddress": "test@gmail.com"
    "productId": "4288",
    "title": "Title 1",
    "imageWebAddress": "http://url.com/GetImage/2956",
    "webAddress": "http://url.com/",
    "description": "Description 23"
}, {
    "emailAddress": "test@gmail.com"
    "productId": "8888",
    "title": "Title 8",
    "imageWebAddress": "http://url.com/GetImage/2333",
    "webAddress": "http://url.com/",
    "description": "Description 55"
}, {
    "emailAddress": "test33@gmail.com"
    "productId": "3333",
    "title": "Title 33",
    "imageWebAddress": "http://url.com/GetImage/333",
    "webAddress": "http://url.com/",
    "description": "Description 333"
}, {
    "emailAddress": "test33@gmail.com"
    "productId": "1111",
    "title": "Title 111",
    "imageWebAddress": "http://url.com/GetImage/111",
    "webAddress": "http://url.com/",
    "description": "Description 111"
}];

Мне нужно удалить "customer" и «рекомендуемый товар», и добавляемое значение «адрес электронной почты» в «рекомендуемый товар»,

Может кто-нибудь помочь мне отобразить это, спасибо

Ответы [ 2 ]

1 голос
/ 03 апреля 2020

Вы можете использовать уменьшить

const arr = jsonOne.reduce((acc, rec) => ([...acc, ...rec.recommendationProductDetails.map(it =>({ ...rec.customer, ...it }))]), [])
console.log(arr)
0 голосов
/ 03 апреля 2020

Вы можете использовать flatMap

const res = arr.flatMap(e =>
    e.recommendationProductDetails.map(r => ({...e.customer, ...r}))
);
console.log(res);
<script>
const arr = [{
    "customer": {
        "emailAddress": "test@gmail.com"
    },
    "recommendationProductDetails": [{
        "productId": "4288",
        "title": "Title 1",
        "imageWebAddress": "http://url.com/GetImage/2956",
        "webAddress": "http://url.com/",
        "description": "Description 23"
    }, {
        "productId": "8888",
        "title": "Title 8",
        "imageWebAddress": "http://url.com/GetImage/2333",
        "webAddress": "http://url.com/",
        "description": "Description 55"
    }]
},
    {
        "customer": {
            "emailAddress": "test33@gmail.com"
        },
        "recommendationProductDetails": [{
            "productId": "3333",
            "title": "Title 33",
            "imageWebAddress": "http://url.com/GetImage/333",
            "webAddress": "http://url.com/",
            "description": "Description 333"
        }, {
            "productId": "1111",
            "title": "Title 111",
            "imageWebAddress": "http://url.com/GetImage/111",
            "webAddress": "http://url.com/",
            "description": "Description 111"
        }]
    }
];
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...