Обновление вложенного массива Immutable.jsIn

88
9

Я хочу использовать неизменяемые функции для обновления моей структуры из этой структуры, но я не уверен, как это сделать. Мои теги не должны быть массивом, но должны стать объектами только для отправки на мой REST api.

Существует несколько примеров того, как обновлять глубокие свойства и вложенные массивы, но я хочу сильно изменить значения 2 массива.

order: {
createDate: '2016-08-07',
pickupDate: '2017-02-02',
items: [
{
price: '25',
tags: [
'Blue',
'Pants'
]
}
]
}

к этой структуре

order: {
createDate: '2016-08-07',
pickupDate: '2017-02-02',
items: [
{
price: '25',
tags: [
{
text: 'Blue'
},
{
text: 'Pants'
}
]
}
]
}

спросил(а) 2021-01-28T01:28:00+03:00 3 месяца, 1 неделя назад
1
Решение
123

Что-то вроде этого:

const { fromJS, Map } = require("immutable")

const obj = fromJS({
order: {
createDate: '2016-08-07',
pickupDate: '2017-02-02',
items: [
{
price: '25',
tags: [
'Blue',
'Pants'
]
}
]
}
})

const items = obj
.getIn(['order', 'items'])
.map((item) => {
const newTags = item
.get('tags')
.map((tag) => ({ text: tag }));
return item.set('tags', newTags);
});

const newMap = obj.setIn(['order', 'items'], items);

ответил(а) 2021-01-28T01:28:00+03:00 3 месяца, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема