js 一维数组和二维数组实现足迹、浏览记录等场景

再开发过程中,再没有接口提供的情况下来实现浏览记录或者搜索记录等场景

我们可以利用本地缓存实现,废话不多说,直接上代码:

多维数组

/**
 * @param {Array} arr 数组
 * @param {Object} data 对象
 */
function footmarkList(arr, data) {
	if(arr.length < 10) { // 当数组长度小于10时,直接插入数据
		if(!isDuplicate(arr, data)) { // 如果数据不重复,则插入
			arr.push(data)
		}
	} else { // 当数组长度大于等于10时,删除最早数据,再插入新数据
		if(!isDuplicate(arr, data)) { // 如果数据不重复,则插入
			arr.shift(); // 删除最早数据
			arr.push(data) // 插入新数据
		}
	}
	return arr
}

function isDuplicate(arr, data) {
  for (let i = 0; i < arr.length; i++) {
    if (JSON.stringify(arr[i]) === JSON.stringify(data)) {
      return true;
    }
  }
  return false;
}

一维数组

function arr(arr, data) {
	if(arr.length < 10) { // 当数组长度小于10时,直接插入数据
		if(!arr.includes(data)) { // 如果数据不重复,则插入
			arr.push(data)
		}
	} else { // 当数组长度大于等于10时,删除最早数据,再插入新数据
		if(!arr.includes(data)) { // 如果数据不重复,则插入
			arr.shift(); // 删除最早数据
			arr.push(data) // 插入新数据
		}
	}
	return arr
}

调用方法两种都是一样的

let newsList = uni.getStorageSync('footmarkList') || [];
let footmarkList = this.$mUtils.footmarkList(newsList, this.data)
uni.setStorageSync('footmarkList', footmarkList)

以上就是所有代码,如果有疑问可以扫码关注!感谢支持

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值