Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将元素推送到不可变列表,而不重新分配变量_Javascript_Immutable.js_Immutablelist - Fatal编程技术网

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
:-)