vue将字符串变为数组

var li=address.split(',')
      //获取索引
      var index=li.indexOf(e);
      if(index>-1){
        //删除数组中的元素
        li.splice(index, 1)
      }
      //将数组转换成字符串
      this.data.address=li.join(',')
      //如果数组为空,则将i隐藏
      if(li.length==0){
        this.activeName=''
      }

vue中get请求传参是数组,变为字符串

问题

vue项目中,用axios封装请求数据时,get请求传递参数为数组时,get拼接url并不能把参数正确的传递过去,

解决

get传参需要前面自己转一下传参的格式

  • 最初错误传参
let provinces= ['1', '2', '3']
axios.get('/gateway/xxx', {
    params: {
      ID: 001,
      provincesData: provinces,
    }
  })
// 上面的请求是 '.../user?ID=001&provincesData[]=1&provincesData[]=2&provincesData[]=3

get直接传数组就会有这种情况

  • 转换传参格式
axios.get('/gateway/xxx', {
    params: {
      ID: 001,
      provincesData: provinces+ '',
    }
  })
// 在参数后面加上( + ''),即可把数组变成字符串
// 请求变成 '.../user?ID=001&provincesData=1,2,3

JavaScript中将数组变成字符串:数组[arr] + ’ ’

总结