为了账号安全,请及时绑定邮箱和手机立即绑定

seamless-immutable的使用问题

seamless-immutable的使用问题

撒科打诨 2019-03-12 17:14:41
现在有这么一段数据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()

https://img1.sycdn.imooc.com//5ca067b10001dff908000263.jpg

查看完整回答
反对 回复 2019-03-31
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

a.map(x => {

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

})


查看完整回答
反对 回复 2019-03-31
?
梵蒂冈之花

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)

})()


查看完整回答
反对 回复 2019-03-31
  • 3 回答
  • 0 关注
  • 537 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信