Javascript 将元素推送到不可变列表,而不重新分配变量
如何避免在迭代不可变列表时重新分配变量,以创建另一个列表。我有下面的代码,工作正常Javascript 将元素推送到不可变列表,而不重新分配变量,javascript,immutable.js,immutablelist,Javascript,Immutable.js,Immutablelist,如何避免在迭代不可变列表时重新分配变量,以创建另一个列表。我有下面的代码,工作正常 function foobar(stateValue) { let propsValue = List(); stateValue.forEach((categoryItem) => { categoryItem.get('coveragePayorIds', List()).forEach(( coveragePayorId) => { const categ
function foobar(stateValue) {
let propsValue = List();
stateValue.forEach((categoryItem) => {
categoryItem.get('coveragePayorIds', List()).forEach((
coveragePayorId) => {
const category = categoryItem.get('category');
propsValue = propsValue.push({
category,
coverage_payor_id: coveragePayorId,
});
});
});
return propsValue;
}
我试图将
属性值
设置为常量。如何实现它?forEach
都是关于副作用的,不适用于不可变的结构或变量。不要用它
function foobar(stateValue) {
return List(stateValue).flatMap(categoryItem => {
const category = categoryItem.get('category');
return categoryItem.get('coveragePayorIds', List()).map(coverage_payor_id =>
({category, coverage_payor_id})
);
});
}
不要使用
foreach
。改为使用缩减(reduce
)。如果要使用不可变结构,请使用函数循环方法。stateValue
到底是数组还是列表?@Bergi stateValue类似于“[Map({coveragepayrids:[{coveragepayrids:Map({category:33}),b:'foo}],category:2,c:3}”OK”。有了列表,您可以使用flatMap
:-)