javascript - 将元素推送到不可变列表而不重新分配变量

标签 javascript immutable.js immutablelist

如何在迭代不可变列表时避免重新分配变量以创建另一个列表。我有下面的代码,运行良好,

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;
}

我正在尝试将 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})
        );
    });
}

关于javascript - 将元素推送到不可变列表而不重新分配变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57235693/

相关文章:

java - 如何从 JavaScriptInterface 启动抽屉导航

javascript - IE6 出现 "Access is denied"错误

javascript - 更新未知的 Immutable.js 映射结构

java - 关于不可变列表(由 Arrays.asList() 创建)

java - 如何创建一个空的 Guava ImmutableList?

javascript - Openlayers 磁贴未加载到选项卡式网页上

javascript - 如何使用javascript添加 "selected"来选择选项

javascript - ImmutableJS 过滤没有 key 的结果,返回对象

javascript - 如何在没有 Immutable 的情况下在 React 中设置 Redux?