【学习笔记】uniApp搜索蓝牙设备之去重

4 篇文章 0 订阅
1 篇文章 0 订阅
//项目中使用
export default {
	data() {
		return {
			arr: [] //定义的空数组,存放获取到的对象
		};
	},
	methods: {
	//开始搜寻附近的蓝牙外围设备
		startBluetoothDevicesDiscovery() {
			this.arr = []; //每次搜索前清空列表
			uni.startBluetoothDevicesDiscovery({
				allowDuplicatesKey: true, //允许重复上报同一设备,便于动态显示信号值
				complete: res => {
					//监听寻找到新设备的事件
					uni.onBluetoothDeviceFound(result => {
						//遍历数组中的对象
						result.devices.forEach(item => {
							//检索key值为deviceId的数据是否存在,不存在则将遍历出的item对象添加到arr数组中,存在则更新除deviceId之外的对象
							ArrDupRem(this.arr, item, 'deviceId');
						});
					});

					//搜索15秒后,主动停止搜索释放系统资源
					setTimeout(() => {
						uni.stopBluetoothDevicesDiscovery();
					}, 15000);
				}
			});
		}
	}
};

//封装去重函数
function ArrDupRem(a, o, k) {
	let i = a.findIndex(v => v[k] === o[k]);
	if (a.findIndex(v => v[k] === o[k]) !== -1) { a.splice(i, 1, o); } else { a.push(o); }
	return a;
}

个人笔记,可供新手小白参考,大佬勿喷

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大宁帝国-KingChan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值