问题引入:在一个数组中push一个对象或元素,但是不管该数组中是否含有当前元素,每点击一次按钮都会添加进去。如何避免呢?以下方案可以解决你的问题
1. 有一个常用方法是设一个flag来做判断的标识
let flag = true;
let msg = '';
let arr = []
if(arr.length<6){
arr.forEach(item=>{
if(data.id===item.id){ // 对象里的唯一标识id
msg = '请勿重复添加!'
flag = false;
}
})
}else{
msg = '最多添加6个!'
flag = false;
}
if(flag){ // 如果满足条件-数组长度小于6,当前添加的值在数组里不存在,就把值添加进去
arr.push(data)
}else{ // 否则弹出提示信息
alert(msg)
}
2. 利用数组API some()来判断
var result = arr.some(item=>{
if(item.name==='张三'){
return true
}
})
// if 可以省略
var result = arr.some(item=>item.name==='张三')
console.log(result) // 如果arr数组对象中含有name:'张三',就会返回true,否则返回false
if(result){ // 如果存在
// do something
}