map-数组api(当你想要改变后端传过来的值)

map这个数组api早就听说了,也知道这个数组是什么用法。如下,他会将原数组中的每一项,经过你传的函数处理之后,返回一个新数组。我以为我会了,其实我并不会...

const array1 = [1, 4, 9, 16];

// pass a function to map
const map1 = array1.map(x => x * 2);

console.log(map1);

但是当我正在用得到的他时候却想不到了!!!

routers: [,…]
0: {id: 1, agreementId: "agreement12", templateId: "1803", routerId: "3079745547746512903", order: "1",…}
1: {id: 2, agreementId: "agreement12", templateId: "1803", routerId: "3079745547805233157", order: "2",…}
2: {id: 3, agreementId: "agreement12", templateId: "1803", routerId: "3079745547863953414", order: "3",…}
3: {id: 4, agreementId: "agreement12", templateId: "1803", routerId: "3079745547914285064", order: "4",…}


处理成以下形式
routers: [
    {agteeId: "agreement12", templateId: "1803"},
    {agteeId: "agreement12", templateId: "1803"},
    {agteeId: "agreement12", templateId: "1803"},
    {agteeId: "agreement12", templateId: "1803"},
]

开始我是这样处理的(想了半天。。。),感觉怪怪的,总感觉有更好的方法。 

​小程序中代码
    let signNameArr = []
    let signStatusArr = []
    let count = 0
    routers.forEach(item => {
      signNameArr.push(item.signName)
      signStatusArr.push(item.status == 0 ? '未签署' : '已签署')
    })
   
    for (let i = 0; i < this.data.steps.length; i++) {
      this.setData({
        [`steps[${i}].agteeId`]: signNameArr[i],
        [`steps[${i}].templateId`]: signStatusArr[i]
      })

​

果然,在经过询问大哥之后,确实有更好的方法可以实现,那就是map方法 。

 

 const steps = routers.map(item => {
      return {
        agreeId: item.signName + ':',
        templateId: item.status == 0 ? '未签署' : '已签署',
        inactiveIcon: 'checked',
        activeIcon: 'checked',
      }
    })

就这样搞定了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值