【发布时间】:2017-11-02 18:24:25
【问题描述】:
当我需要深入研究数据结构时,我经常发现自己遵循这种模式,尤其是在我的 Redux reducer 中:
state.items = state.items.map((item) => {
item.subItems = item.subItems.map((subItem) => {
subItem.bottomItems = subItem.bottomItems.map((bottomItem) => {
// do something with bottomItem...
bottomItem.foo = 'bar';
return bottomItem;
});
return subItem;
});
return item;
});
这似乎有很多样板要降到bottomItems 级别。
ES6 或 ES7 是否提供了一些语法糖来简化这种模式?
【问题讨论】:
-
好吧,你可能不想改变状态本身:)。您是更新每个项目的每个子项目的每个底部项目还是更具体的内容?
-
@nem035 我实际上并没有意识到我的突变不是最佳实践...感谢您引起我的注意。是的,我正在尝试更新每个
bottomItem -
您正在寻找的是 lenses,这是一种用于向下钻取的可组合抽象。虽然它们没有正式标准化或提供任何语法糖,但它们需要在用户空间中实现。
标签: javascript ecmascript-6 redux syntactic-sugar ecmascript-2016