大家好,又见面了,我是你们的朋友全栈君。
1、for循环
2、foreach (es5)
3、map (es5)
4、some
5、every
6、filter
功能需求:扫码枪扫商品去判断当前护理项目下面是否存在这个商品 如果有 那么就存在前端的集合里面 如果没有 则提醒 没有此商品 护理项目会有多个 会存在 多个护理项目下面存在相同的商品需要核销
判断此商品是否存在我是用的some方法
let newAry = _this.goodsList.some(n => {
let res = n.goodsList.some(r => {
return r.barCode == goodBarCode
})
return res;
})
if(!newAry){
uni.showModal({
title:'该计费项目无此商品 请核查!'
})
//加了一个延时 提示后把数据清空 方便下一次扫码操作
setTimeout(()=>{
_this.goodName = '';
},200)
return false;
}
some() 与 every() 的区别在于
some只要一个是true 那么整个循环完成都会返回true
every必须所有返回都是true 那么才会返回true 只要有一个是false那么就会返回false
所以才有 some 一真即真 every 一假即假
所以这里我判断扫码的商品编码和列表中的商品编码是否相同 如果有相同 那么我就继续后面新增商品数据的操作 如果一个都没有 那么就返回一个false 提示用户没有此商品 没有使用every的方法原因是因为 你扫的这个商品编码 有可能在第一个护理项目没有 但是会存在第二个甚至第三个
如果商品存在 那么继续后续添加数据的方法 使用的for循环 只要成功添加一条之后 就停止当前操作 继续扫码 所以return false
再来说说foreach和map的区别( 为什么没有使用这两个循环方法)
foreach和map都是无法跳出循环的 break、return false 都无法终止循环 甚至使用break还会报错。
map会返回一个新的数组 foreach是按照顺序去调用数组中的每一个元素 没有return值
filter下次更 = = 没时间了 我要去改bug了…
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/134048.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...