bug说明,下图只点击了3次添加,但是出来了8条数据
代码:**造成原因:**每次用foreach();find()等进行数组遍历的时候他是不能使用break等跳出循环遍历的,所以每次都会多添加几条
**解决方法:**直接用set()去重,或者改用es5中的for switch循环。
moreLUNAdd(formName) {
// 多语言添加按钮
this.$refs[formName].validate((valid) => {
if (valid) {
if (this.moreForm.lang) {
this.languages.find((item) => {
if (item.language === this.moreForm.lang) {
this.moreForm.langLable = item.cname + '/' + item.memo
}
})
}
let moreFormObj = {
'content': this.moreForm.content,
'lang': this.moreForm.lang,
'langLable': this.moreForm.langLable
};
console.log(this.userInforData);
if (this.userInforData.list.length > 0) {
console.log('长度不为0');
this.userInforData.list.find((item) => {
if (item.lang === this.moreForm.lang) {
this.$notify.error({
title: '错误',
message: '该语种已存在'
});
return false;
} else {
console.log('该语言未创建');
console.log(moreFormObj);
this.userInforData.list.push(moreFormObj);
}
});
} else {
this.userInforData.list.push(moreFormObj);
}
} else {
console.log('error submit!!');
return false;
}
let newArr = Array.from(new Set(this.userInforData.list)); // 去重设置
this.userInforData.list =[].concat(newArr);
console.log(this.userInforData);
})