问答

给后端传的参数名和长度不固定怎么办?

作者:admin 2021-05-13 我要评论

一个修改商品价格的接口 order_goods[0][order_goods_id] 和 order_goods[0[change_price] 这两个参数名和长度不固定 如果同时修改多个商品价格 那么字段名是根...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

一个修改商品价格的接口
order_goods[0][order_goods_id]order_goods[0[change_price]这两个参数名和长度不固定 如果同时修改多个商品价格 那么字段名是根据下标来命名的 如果修改3个商品价格就根据下标来写参数名 就像下面写的这样 参数名不能写死了 也不确定传多少个参数 这种情况怎么办呢? 如果我每次用test里面的数据来传参应该怎么写呢?
ps.这种命名参数的方法是不是不好?我总感觉后端是故意为难我

let test = [
    {
        id: 34546,
        price: 55
    },
    {
        id: 14124,
        price: 99
    },
    {
        id: 96558,
        price: 44
    }
]

下面是写死的参数

let obj = {
      order_id: this.data.changeList.id,
      confirmchange: 'yes',
      dispatch_price: 55,
      'order_goods[0][order_goods_id]': 1114,
      'order_goods[0][change_price]': 41,
      'order_goods[1][order_goods_id]': 1120,
      'order_goods[1][change_price]': 69,
      'order_goods[2][order_goods_id]': 1115,
      'order_goods[2][change_price]': 50,
    }
api.common_post('admin/shop?c=site&a=entry&m=yun_shop&do=4410&route=order.change-order-price.store',obj).then(res=>{
      console.log(res)
})
###

遍历 test 生成所需的参数对象然后 merge 到 obj 里。

let obj = {
    ...Object.fromEntries(
        test.reduce((prev, cur, idx) => {
            prev.push([`order_goods[${idx}][order_goods_id]`, cur.id]);
            prev.push([`order_goods[${idx}][change_price]`, cur.price]);

            return prev;
        }, [])
    ),
    // 其他属性
    // ...
};

Object.fromEntries(),就是 Object.entries() 的一个逆操作。

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 请问下prometheus怎么进行自定义的按业

    请问下prometheus怎么进行自定义的按业

  • 节流函数为什么,点击无效,监听窗口大

    节流函数为什么,点击无效,监听窗口大

  • express访问静态资源失败

    express访问静态资源失败

  • IE 浏览器下 match 方法报错

    IE 浏览器下 match 方法报错

腾讯云代理商
海外云服务器