现在有这么一段数据let a = [{list:[1,2,3]},{list:[4,5,6]}];let aIm = immutable(a);我想把list数组中的每一项都加1,应该怎么写?
3 回答
忽然笑
TA贡献1806条经验 获得超5个赞
let list = Immutable.fromJS([{list:[1,2,3]},{list:[4,5,6]}])
list.map(item => item.updateIn(['list'], list => list.map(n => ++n))).toJS()
梵蒂冈之花
TA贡献1900条经验 获得超5个赞
可以这样做,用两层reduce来实现:
(() => {
let a = [{list: [1, 2, 3]}, {list: [4, 5, 6]}]
let aIm = Immutable(a)
aIm = aIm.reduce((aIm, item, index) =>
aIm.updateIn([index, 'list'], add), aIm)
function add (arr) {
return arr.reduce((arr, item, index) =>
arr.updateIn([index], plus), arr)
}
function plus (x) {
return x + 1
}
console.log(aIm)
})()
添加回答
举报
0/150
提交
取消