美文网首页
小程序数组操作+查重+本地存储

小程序数组操作+查重+本地存储

作者: 全栈的猫南北 | 来源:发表于2021-11-03 15:06 被阅读0次

小程序json数组操作

  if(list.length>8)
  {
    // list.pop();//删除最后的元素
    list.shift();//删除前面元素
  }
  var datalist =list.concat(e.detail.values[2])//加入常用城市
  let data = JSON.stringify(datalist)//数组对象转成字符串以供存储
  // debugger
    wx.setStorageSync('citylist',data ) //存储数组json
        push()方法可以在数组的末属添加一个或多个元素
        shift()方法把数组中的第一个元素删除
        unshift()方法可以在数组的前端添加一个或多个元素
        pop()方法把数组中的最后一个元素删除
        splice(index, 1)删除数组的指定下标元素

删除数组的指定下标元素

   let index= e.currentTarget.dataset.index
    let rawMaterialList = this.data.rawMaterialList
    rawMaterialList.splice(index, 1)
    this.setData({
      rawMaterialList
    })

需求是查询城市之后如果没有重复就保存在常用城市里,常用城市最多为9个,覆盖最早添加的城市。

160551635921800_.pic.jpg 160531635921716_.pic.jpg 160561635922106_.pic_hd.jpg

数据存储函数,用法详见代码里,注释很清楚

 //确定选择
  areaConfirm(e) {
    let pages = getCurrentPages()
    let prevPage = pages[pages.length - 2];
    prevPage.setData({
      isCity: 1,
      currentCity: e.detail.values[2].name,
      currentCode: e.detail.values[2].code
    })
    this.setData({
      ["registerForm.province"]: e.detail.values[0].code,
      ["registerForm.provinceName"]: e.detail.values[0].name,
      ["registerForm.city"]: e.detail.values[1].code,
      ["registerForm.cityName"]: e.detail.values[1].name,
      ["registerForm.county"]: e.detail.values[2].code,
      ["registerForm.countyName"]: e.detail.values[2].name,
      areaDialog: false
    })
    wx.navigateBack({
      delta: 1,
    })
   
    var list= this.data.cityList//常用城市数组,元素为字典[{name:"",code:""}]
    /* 
* @判断函数(推荐变量接收结果)
* @返回值: Boolean
* 如果返回true 则表示数组中有相同项
* 如果返回false 则表示数组中没有相同项
* 注意:该函数只判断一个属性是否相等,
* 如果你需要严格的判断则需要继续加if条件
*/
var res = list.some(item => {
    // 根据城市编码code判断是否重复
   if(item.code == e.detail.values[2].code) {
      return true;
  }
})
// debugger
// 业务逻辑
if(res){ 
//重复
}else
{
  if(list.length>8)
  {
    // list.pop();//删除最后的元素
    list.shift();//删除前面元素
  }
  var datalist =list.concat(e.detail.values[2])//加入常用城市
  let data = JSON.stringify(datalist)//数组对象转成字符串以供存储
  // debugger
    wx.setStorageSync('citylist',data ) //本地存储数组json
}
  },

进入城市页面会在onShow: function ()方法里调用,获取本地存储的json数组

  //获取常用城市
  getCity() {
    var list= this.data.cityList
    var value = wx.getStorageSync('citylist')
    // var datalist = new Array()
    var datalist =list.concat(JSON.parse(value))
        debugger
        this.setData({
          cityList: datalist
        })
  },

wx.getStorageSync('citylist'),根据key获取存储的城市数组对象
JSON.parse(value),把字符串转成数组对象;
list.concat(),数组相加

相关文章

网友评论

      本文标题:小程序数组操作+查重+本地存储

      本文链接:https://www.haomeiwen.com/subject/elfczltx.html