我想利用不变的功能来从这种结构中更新我的结构,但我对如何做不确定。我的标签不应该是一个数组,而应该成为仅用于发布我的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'
}
]
}
]
}
类似的东西:
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);