vue中v-for重复数据处理||element下拉框去除重复

前端去重方法有多种,只说三种常用的(新老方法都有)
1-使用常规双for循环(暴力算法)遍历比较的方式对值进行比较
2-使用js方法sort排序(只针对数组),但是经常在vue等新框架中提示TypeError: arr.sort is not a function
3-使用reduce方法(>_<)推荐

前端js各种操作合集备忘

业务场景

点击路线后后面车道框只显示当前路线的车道数选项,Excel导入测试数据,发现有重复的,而且后期路上的数据导进来会导致下拉框很长!所以在不影响业务场景的要求下选择去重展示!
在这里插入图片描述

常规去重

在这里插入图片描述

使用reduce

这里同时使用了三元运算符,看不懂自行百度

在这里插入图片描述

代码

HTML || vue中的template

			<el-select v-model="queryParams.cdNum" placeholder="车道数" clearable>
                    <el-option
                        v-for="lx in lxcdNum"
                        :key="lx.lxId+lx.beginZh"
                        :label="lx.cdNum"
                        :value="lx.cdNum"
                    />
                </el-select>

js

(response => {
                // todo 关于前端    去重  新老方法的使用
                var arr = [];
                var laneArr = []
                var hash = [];
                /* 删除下拉框中的重复项 */
                // for(let i = 0; i < response.rows.length; i++){
                //     arr = response.rows[i].cdNum;

                    arr = response.rows
                    laneArr = arr.reduce(function (item,next){
                    hash[next.cdNum] ? '' : hash[next.cdNum] = item.push(next);
                    return item;
                }, []);
                //         for(let j = i + 1; j < response.rows.length; j++){
                //             if(response.rows[i].cdNum == response.rows[j].cdNum){
                //                 j = ++i;
                //             }
                //         }
                //     if (arr[i] != arr[i-1]){
                //         laneArr = arr.push(arr[i])
                //     }
                // }
                    this.lxcdNum = laneArr

            })

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值