使用不可变 JS 更新映射列表中的一个键
Updating one key in list of maps using ImmutableJS
Docs for immutable.js,缺乏描述性示例。有人可以解释一下,我如何在不可变JS中执行以下操作:
function isOdd (v) {
return v % 2 === 0
}
var collection = [{a: 1, b: 2}, {a: 3, b: 7}, {a: 5, b: 6}];
collection.map(item => {
if (isOdd(item.b)) {
item.a = item.a * 2;
}
return item;
})
任何帮助都非常感谢。
const collection = Immutable.fromJS([{a: 1, b: 2}, {a: 3, b: 7}, {a: 5, b: 6}]);
const isOdd = a => b => b % 2 ? a : a * 2;
collection
.map(item => item
.update('a', a => isOdd(a)(item.get('b'))))
检查此笔的控制台输出:http://codepen.io/anon/pen/Nxzdwe?editors=1012
所以这是我的版本:
const collection = Immutable.fromJS([{a: 1, b: 2}, {a: 3, b: 7}, {a: 5, b: 6}]);
console.log(
collection
.map(item => {
if (item.get('b') % 2 == 0) {
return item.set('a', item.get('a') * 2)
} else {
return item;
}
}).toJS()
);
相关文章:
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- 如何将不可变的js导入angular 2(alpha)
- 从我的控制器返回一个不同于200的代码以触发ajax错误,这被认为是一种好的做法吗
- 在输入字段上有两个函数调用,一个在Blur上,一个不在Angular中
- 如何将一个函数附加到一个不存在的元素上
- JavaScript Array unshift() 以一种不可变的方式
- 创建一个带有可变字段的json对象
- 将对象从另一个不可变的Map分配给Map是否意味着深度克隆
- 同一事物的两个函数,一个崩溃,另一个不崩溃,为什么
- 函数在不可变的js和redux存储中
- 如何在JS中创建对象的可变和不可变副本
- 使用不可变 JS 更新映射列表中的一个键
- 不可变状态是ReactJs中的一个功能特性
- 冻结一个属性?或者如何将属性设置为不可变/只读
- 对一个不可变列表进行排序和分组
- React internet explorer 11渲染映射到一个不可变集合错误的结果
- 搜索一个不可变的JS Map
- 如何为不可变js类型写一个流类型定义
- 如何在JavaScript中创建一个高性能、不可变的数组
- 柴 期望一个深层数组包括不使用柴不可变