函数编程式编码

 this.fetchData(path, args).then(result => {
        // 1、 项目
        this.privList = result
        // 2、 初始化数据
        this.initMap()
      })

      // 1、 函数式写法   compose(fn1,fn2)    先执行fn2,再执行Fn1
      this.fetchData(path, args).then(
        compose(
          result => {
            // 1、 项目
            this.privList = result
          },
          // 2、 初始化数据
          this.initMap()
        )
      )

      // 2、函数式写法  pipe(fn1,fn2)   先执行fn1,再执行fn2
      this.fetchData(path, args).then(
        pipe(
          result => {
            // 1、 项目
            this.privList = result
          },
          // 2、 初始化数据
          this.initMap()
        )
      )

        // 1、给变量赋值

  //   const isRadio =  item.isRadio ? '' : []  这个造成的结果不一样,会导致数组重复

        const isRadio = () => (item.isRadio ? '' : [])
        const setValue = obj => {
          this.$set(obj, item.name, isRadio())
        }
        ;[this.tags, this.tagsOrigin].forEach(tagsObj => {
          setValue(tagsObj)
        })

        // 上面一段代码是对下面代码的改造
         if (item.isRadio) {
              this.$set(this.tags, item.name, '')
              this.$set(this.tagsOrigin, item.name, '')
         } else {
              this.$set(this.tags, item.name, [])
              this.$set(this.tagsOrigin, item.name, [])
         }
            //  push函数 与业务无关
            const _push = (sourObj, value) =>
              Array.isArray(sourObj) && sourObj.push(value)
            const pushCode = _.curryRight(_push, i.tagCode)

            
            ;[this.originalChosen, this.chosenList].forEach(pushCode)

            //
            // ;[this.tags, this.originalTags].forEach(
            //   item.isRadio // 单选  $set
            //     ? tagsCode => setValue(tagsCode, i.tagCode)
            //     : _.flow(
            //         _.property(item.firstName),
            //         pushCode
            //       ) // 多选 psuh
            // )
            ;[this.tags, this.originalTags].forEach(
              item.isRadio // 单选  $set
                ? tagsCode => setValue(tagsCode, i.tagCode)
                : tagsCode => tagsCode[item.firstName].push(i.tagCode) // 多选 psuh
            )

            //

            // if (item.isRadio) {
            //   this.tags[item.firstName] = i.tagCode
            //   this.originalTags[item.firstName] = i.tagCode
            // } else {
            //   this.tags[item.firstName].push(i.tagCode)
            //   this.originalTags[item.firstName].push(i.tagCode)
            // }

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值