Node.js ImmutableJS:在数组中更新对象
我的情况有点复杂,如下所示:Node.js ImmutableJS:在数组中更新对象,node.js,redux,immutable.js,Node.js,Redux,Immutable.js,我的情况有点复杂,如下所示: array: array: object, object, etc... array: etc... 简单地说,一个数组包含许多包含对象的数组。 我试图根据Id在这个混乱中找到其中一个对象,并对其进行更新(即将一个完整的值设置为true),但到目前为止还无法找到。使用Mudash,我设法找到了这个对象,但我不知道如何再次传递它以返回它,我的代码如下: return state.update('data', (arr) =&g
array:
array:
object,
object,
etc...
array:
etc...
简单地说,一个数组包含许多包含对象的数组。
我试图根据Id在这个混乱中找到其中一个对象,并对其进行更新(即将一个完整的值设置为true),但到目前为止还无法找到。使用Mudash,我设法找到了这个对象,但我不知道如何再次传递它以返回它,我的代码如下:
return state.update('data', (arr) => {
_.forEach(arr, function(item) {
_.forEach(item, function(elt) {
if(elt.Id == action.Id) {
console.log('Item Found');
elt.set('completed', true);
}
});
});
return arr;
});
有什么简单的方法可以做到这一点吗?
谢谢。如果你问的是如何变异一个不可变对象的一部分,那么就不会有让你满意的答案。有关更多详细信息,请参见此答案:
const _ = require('mudash')
return _.update(state, 'data', (arr) => {
return _.map(arr, function(item) {
return _.map(item, function(elt) {
if(_.get(elt, 'Id') == action.Id) {
console.log('Item Found');
return _.set(elt, 'completed', true);
}
return elt;
});
});
});
这是一个优雅的解决方案。谢谢:)