seamless-immutable的使用问题

现在有这么一段数据


let a = [{list:[1,2,3]},{list:[4,5,6]}];

let aIm = immutable(a);

我想把list数组中的每一项都加1,应该怎么写?


撒科打诨
浏览 541回答 3
3回答

忽然笑

let list = Immutable.fromJS([{list:[1,2,3]},{list:[4,5,6]}])list.map(item => item.updateIn(['list'], list => list.map(n => ++n))).toJS()

繁花不似锦

a.map(x => {    return x.list.map(y => y+1)})

梵蒂冈之花

可以这样做,用两层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)})()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript