使用 ImmutableJS 更新地图列表中的一个键
Updating one key in list of maps using ImmutableJS
immutable.js 的文档缺少描述性示例。
有人可以解释一下,我如何在 ImmutableJS 中执行以下操作:
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()
);
immutable.js 的文档缺少描述性示例。 有人可以解释一下,我如何在 ImmutableJS 中执行以下操作:
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()
);