vue map循环数组,向数组push值,值出现重复添加的问题(已解决)
需求:选择下拉框中的值,点击 添加 按钮,将选中的值push到表格数组中,进行页面渲染,选择的重复值要去除掉。
页面效果:
再次选择 7 & 8 要提示已经存在
出现问题:第一次 第二次添加都没有问题,第三次之后,添加数据都会出现重复添加的现象
修改之前代码:
逻辑:首先判断表格数组是否有值,没有值正常进行push,有值进行重复值筛选,如果已经存在不再push,反之,正常赋值
// 添加handleAdd(){let that=this if(that.reelNameList.length>0){that.reelNameList.map(item=>{if(item.size==that.sizeValue&&item.thick==that.thickValue){exist = true;that.$message({message:'已经存在了~',type: 'error'});}else{that.reelNameList.push({size:that.sizeValue,thick:that.thickValue})}})}else{console.log('数组小于0')that.reelNameList.push({size:that.sizeValue,thick:that.thickValue})} },
导致问题出现的原因:是因为在map循环里进行了else判断,导致会一直循环添加
修改后代码:
增加一个值进行判断
// 添加handleAdd(){let that=this if(that.reelNameList.length>0){let exist = false;//判断是否存在that.reelNameList.map(item=>{if(item.size==that.sizeValue&&item.thick==that.thickValue){exist = true;that.$message({message:'已经存在了~',type: 'error'});}})if(!exist){that.reelNameList.push({size:this.sizeValue,thick:this.thickValue})}}else{console.log('数组小于0')that.reelNameList.push({size:that.sizeValue,thick:that.thickValue})} },
完整代码
<div class="both-btn"><el-select v-model="sizeValue" clearable placeholder="请选择尺寸" @change="toQuerySize"><el-option v-for="item in sizeOptions" :key="item.id" :label="item.name" :value="item.id"></el-option></el-select><el-select v-model="thickValue" clearable placeholder="请选择类型" @change="toQuery"><el-option v-for="item in thickOptions" :key="item.id" :label="item.name" :value="item.id"></el-option></el-select><div><el-button size="small" round style="background-color:#00558C" @click="handleAdd()">添加</el-button></div></div>
data中定义
sizeOptions:[],//尺寸下拉框sizeValue:'',thickValue:'',thickOptions:[],//厚度下拉框reelNameList: [],
// 添加handleAdd(){let that=this if(that.reelNameList.length>0){let exist = false;//判断是否存在that.reelNameList.map(item=>{if(item.size==that.sizeValue&&item.thick==that.thickValue){exist = true;that.$message({message:'已经存在了~',type: 'error'});}})if(!exist){that.reelNameList.push({size:this.sizeValue,thick:this.thickValue})}}else{console.log('数组小于0')that.reelNameList.push({size:that.sizeValue,thick:that.thickValue})} },
vue map循环数组,向数组push值,值出现重复添加的问题(已解决)相关推荐
- Vue如何循环提取对象数组中的值
数据如下,提取name和callcount 第一种: getQueryCallStatistics("sesp1", this.provinceId).then((res) =&g ...
- GEE中取数据遇到值为null无法添加到list的解决方法
1. 问题描述 在GEE上处理数据时,遇到了值为null的情况,这种情况下无法将得到null值添加到list,从而造成程序错误.因此,解决问题的思路应该是将null的值进行替换,替换为一个数值. 2. ...
- python列表添加重复值_python 列表 重复添加数据库
<Python 3程序开发指南(第2版•修订版)>--1.4 总结 本节书摘来自异步社区<Python 3程序开发指南(第2版•修订版)>一书中的第1章,第1.4节,作者[英] ...
- vue项目使用jwt token验证登录 报错token无效验证失败 【已解决】
检查了所有代码都没有问题,在所有需要token的地方都能拿到正确的token,但是在verify时仍然走的err,打印出的错误为 invalid token 最后在外网查到有人在获取token时使用了 ...
- js声明数组 js数组如何获取真实对象 js数组处理null值情况 js数组通过下标赋值和push赋值的区别 loopback4的基础使用
目录 问题来源 js数组 数组通过下标赋值 数组通过push赋值 总结 loopback4 安装 创建项目 项目启动 访问项目 创建HelloController 运行访问HelloControlle ...
- vue中检测对象和数组值变化的问题
今天工作中遇到改变vue data中某个对象的值,却无法触发视图更新的问题.看了看官方文档,怎么解决的呢? 1.检测对象的变化 受现代 JavaScript 的限制(以及废弃 Object.obse ...
- 【杂记】(富文本框回填值、ajax数据回填按钮年级学科、去除数组中数组外包的引号、多重循环的写法、微测评获奖页面的内容 循环拼接写法、textarea禁止拖动、html基本、透明度、页面内出现滚动条)
1. 富文本框回填值 for(var i = 0;i<res.data.choiceoptinfo.length;i++){ueArr[i].ready(function(){//选项ueArr ...
- php volist获取数组长度,Thinkphp volist多重循环原样输出数组key值
下面由thinkphp框架开发栏目给大家介绍Thinkphp volist多重循环原样输出数组key值的使用总结,希望对需要的朋友有所帮助! 最近因为项目的缘故,要使用到volist.在这个过程中,遇 ...
- for循环遍历数组并获取到数据值进行判断
/*vm.listData为数组*/ var obj = vm.listData;//for循环遍历数组 获取数组中的 手机号 并判断手机号的 长度 是否为规定的 长度for (var i = 0; ...
最新文章
- 关于学习Python的一点学习总结(57->正则表达式及re模块中的一些函数)
- 《像计算机科学家一样思考C++》导读
- ViewConfiguration.getScaledTouchSlop () 用法
- 灰帽黑客:正义黑客的道德规范、渗透测试、攻击方法和漏洞分析技术(第3版)
- css设置 ul的内外边距,9月3日学习CSS选择器,背景设置,及内外边距知识总结
- max std value 宏_Rust Macro/宏 新手指南
- mysql8 修改root密码
- 什么是mysql的索引_什么是MySQL索引?【详解】
- HTML5教程:1.3 HTML 5的使用理由和待解决问题
- 本行没有输入值结余隐藏_仓库库存管理系统,内含逻辑公式,自动结余库存!操作简单易上手...
- 【jvm】java jvm 参数调优 列表
- how bootstrap fit into our website design?
- nowcoder-linux
- Python暴力破解教程: Zip加密文件, pdf加密书籍在线爆破!
- html制作开心餐厅,二次元少女开心餐厅
- python小游戏----外星人入侵
- 读懂 TS 中联合类型和交叉类型的含义
- Linux 下Wine安装与QQ轻聊版安装
- 关于asp用python做脚本语言
- win10微软图标点击无反应_Win10下鼠标双击桌面图标打不开应用的三种解决方案...