对象数组封装的去重方法,传入唯一值进行

JavaScript - 二维对象数组去重(根据某一属性) 有时候,我们可能需要数组去重,如果是一维数组,那么直接 ES6 语法即可,如果是二维对象数组则无效了(一维数组去重请访问这篇文章例如以下对象数组,可以看到有两个重复的对象,那么如何根据id(或其他属性)进行判断后去除呢? 阅读详情

对于给定的数组,例如: oldArr: [{ id: 1, name: 'zs' },{ id: 2, name: 'ls' },{ id: 3, name: 'ww' },{ id: 4, name: 'zl' },{ id: 5, name: 'zs' }] 去掉相同name的一项呢,下面就简单封装一个方法

 <div id="app">
      <div class="validate">
        原来的数组:<span>{{oldArr}}</span> <br />
        去重后的数组:<span>{{newArr}}</span><br />
      </div>
    </div>
    <script src="vue.js"></script>
    <script>
      const vm = new Vue({
        el: '#app',
        data: {
          oldArr: [
            { id: 1, name: 'zs' },
            { id: 2, name: 'ls' },
            { id: 3, name: 'ww' },
            { id: 4, name: 'zl' },
            { id: 5, name: 'zs' }
          ]
        },
        computed: {
          newArr: function() {
            return this.removSDuplicate(this.oldArr, 'name');
          }
        },
        methods: {
          /**
          @param oldArr 需要去重的数组
          @param uniqueValue 对象中唯一的值
          @return 输入结果
          **/
          removSDuplicate(oldArr, uniqueValue) {
            let hash = {};
            let newArr = oldArr.reduce(function(prev, item, _this) {
              hash[item[uniqueValue]]
                ? ''
                : (hash[item[uniqueValue]] = true && prev.push(item));
              return prev;
            }, []);
            return newArr;
          }
        }
      });
    </script>

这样就可以了,你要的效果:

【每天一个知识点】多视图子空间聚类(Multi-view Subspace Clustering) 本文深入解析了多视图子空间聚类技术,这是一种处理多源异构数据的先进方法。它通过融合多个数据视图(如文本、图像、网络结构)的共识与互补信息,学习统一的潜在子空间表示,从而获得比单一视图更鲁棒、准确的聚类结果。文章详细阐述了其核心思想、主流技术流派(如图融合、共同潜在子空间、张量及深度学习方法),并提供了Python实战代码与调优经验,适用于跨模态检索、生物信息学等多领域复杂数据分析。 阅读详情

相关推荐

医学图像分割评价指标详解:从Dice到MSD的实战解析

本文深入解析医学图像分割的核心评价指标,从最常用的Dice相似系数到衡量边界精度的MSD(最大对称表面距离),通过实战案例与代码演示,系统阐述各指标的计算原理、应用场景及临床意义,帮助读者全面评估模型性能。

weixin_29070721的博客 593

生成数组唯一标识,数组任意更改顺序和字段,适合表单版本标识生成

生成数组唯一标识,数组任意更改顺序和字段,适合表单版本标识生成 该数组唯一标识生成算法,仅适合数组元素值唯一 最近为了搞一个自定义表单,并且为该自定义表单设置一个唯一的版本标识 例如:有那么一个需求,例如我每次提交 字段所在的顺序是不一样的 // 例如:有 字段A:1, 字段B:2, 字段C:3 并且每次提交顺序 let arrA = [1,2,3]; let arrB = [2,1,3]; ...

u014771745的专栏 941

三维重建之条纹投影结构光(三)——相位展开优化与多频外差实践

本文深入探讨了三维重建中条纹投影结构光技术的核心环节——相位展开优化。针对传统路径跟踪法存在的误差传播与路径依赖问题,重点解析了多频外差法的原理与优势,并通过详细的C++代码实践,展示了如何利用三频外差法实现鲁棒、高精度的相位展开,从而获得连续的绝对相位图,为后续三维点云生成奠定坚实基础。

weixin_29074295的博客 530

VUE 前端 框架基础(全栈工程师基础)

数组 .filter() filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。过滤满足条件的内容 .map() map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。 map() 方法按照原始数组元素顺序依次处理元素。 .forRach() forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。注意:forEach() 对于空数组是不会执行回调函数的。如果数组可能为空,又必须要执行回调函数时,.

fengj20015的博客 442

高德地图爬虫

高德地图爬虫 工具:Pycharm,win10,Python3.6.4 1.需求分析 这篇爬虫和上一篇百度地图爬虫要求一样,百度地图爬虫我发现有一个auth参数会一直变化,一旦变化则获取的数据是不准确的,所以我上高德地图看了一下,高德地图没有这个反爬机制。但是高德地图大概爬取120个页面就会跳一次验证码,我这里是通过换IP解决这个问题的。 2.数据准备 同样我们需要全国地级市信息,用之前...

123的博客 1万+

STM32 W5500 Freemodbus Modbus TCP协议功能实现

STM32F103VCT6 W5500(SPI1),实现Modbus-TCP协议的功能

坚韧与专注 2万+

js数组对象去重的五种方式

数组对象: var str = [ {name: "张三",id: 1}, {name: "李四",id: 2}, {name: "王五",id: 3}, {name: "小明",id: 2}, {name: "小红",id: 1}, ]; 1、双层for循环 for(var i=0;i<str.length - 1;i++){ for(var j = i+1;j<str.length;j++){ if(str[i].id == str[j]

Dcripple的博客 1万+

ZYNQ GP总线实现PS与PL交互

3,完成 ZYNQ7 Processing System 的配置更改后,回到 Diagram 界面中,可以看到新出现了名为 M_AXI_GP0_ACLK、M_AXI_GP0 和 FCLK_CLK0 的接口,下面我们要对这些接口进行连接或引出。此处的偏移量,AXI的相邻寄存器偏移量相差4个字节,默认slv_reg0的偏移量是0,可以推导出slv_reg1,slv_reg2的偏移量分别为4和8,这里只用到了slv_reg0,所以偏移量为0。当然了,窗口数量的增加,势必会使得单个窗口的采样深度变小。

wangjie36的博客 7094

数组去重的几种封装方法

1、遍历数组法: 此方法缺点: IE8以下不支持 indexOF function unique(array){ var n = []; for(var i =0; i<array.length; i++){ if(n.indexOf(array[i])==-1){ n.push(array[i]); } }

技术改变世界 1866

[系统安全] 十七.Windows PE病毒概念、分类及感染方式详解

作者前文介绍了PE文件格式,熟悉各种PE编辑查看工具,针对目标EXE程序新增对话框等;这篇文章将介绍Windows PE病毒, 包括PE病毒原理、分类及感染方式详解,并通过案例进行介绍。这些基础性知识不仅和系统安全相关,同样与我们身边的APP、常用软件及操作系统紧密联系,希望这些知识对您有所帮助,更希望大家提高安全意识,安全保障任重道远。本文参考了《软件安全》视频、安全网站和参考文献中的文章,并结合自己的经验和实践进行撰写,也推荐大家阅读参考文献。

杨秀璋的专栏 1万+

RK3568 Android14 调试 RTL8211F 千兆以太网 (RGMII)

调试 RTL8211F 的核心在于:确认地址(看电阻贴片情况)和 搞定延时(配置 rgmii-id 或微调 delay 值)。一旦这两点对上了,RK3568 的千兆网络就能稳定运行。希望这篇结合原理图的实战记录能帮到你!

qq_33427070的博客 1648

往对象数组里面添加相同的key 不同的value

应用场景:后盾字段没有发给你 自己补充数据 <div v-for="item in list" :key="item.id"> <p>{{ item.id}} ----> {{ item.name}} --->{{ item.sex }}---> {{ item.tel }}---->{{ item.link}}--插入...

weixin_30653023的博客 3331

华为HCIE之TS部分整理

TroubleShooting 整体拓扑 1. MSTP 题目需求:site1 中,CLIENT1 属于 VLAN12,CLIENT3 属于 VLAN34;MSTP 中的 VLAN12 属于 instance1,vlan34 属于 instance2;两个 instance 的主备根桥分别在 SW1 和 SW2 上,并且要求 CLIENT1访问 R1 时经过的路径是 SW3-SW1-R1;同时要求 CLIENT3 访问 R1 时经过的路径是SW3-SW2-R1; 排错思路: ①查看SW3 SW1 SW

ledrsnet的博客 5756

封装数组去重的方法

这篇文章则是要介绍我封装 "数组去重" 方法的过程,我将参考 lodash 和 radash 中的实现方式,封装一个自己的去重方法。

m0_52912501的博客 1451

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

数组中的对象去重方法(使用时将我的参数数组改成你自己的就可以了)

项目开发过程中经常会处理数据,其中数组中的对象去重是最凡人的,今天笔者就将数组当中的对象去重方法分享给大家,大家使用的时候只需要调用这个方法,传入你要去重的数组以及对象的唯一值就可以了。 PS:笔者封装的这个方法不论是参数是对象还是普通的数字或者字符串都可以实现去重 // 首先搞三个数组用来待会测试 // 要进行去重的数组 const arr = [ { id: 1, name: '...

吴小迪的博客 3万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

对象数组去重

let data = [ { id: 201801, name: "张三", age: 15 }, { id: 201804, name: "John", age: 18 }, { id: 201802, name: "李四", age: 18 }, { id: 201801, name: "张三", age: 15 }, { id: 201805, name: "Jack"...

Jana Jing的分享 842

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

数组中的对象去重(es6方法)

需求 将数据处理后产生的code相同的数据去除后返回给后端 解决 处理后产生的重复数据 // 处理后产生的重复数据 let tableList = [ { code: '001', name: 'aaa', age: '18', other: 'abc' }, { code: '002', name: 'bdfd', age: '28', other: 'abc' }, { code: '002', name: 'aasdf', age: '98', other: 'abc' },

SilentLand的博客 1991

JS数组去重的方法及原理(全)

前端遇到最多的无非就是循环,判断,处理后台返回的数据了,那么今天介绍一下数组去重的几种常用方法。 一,

海贼王某人的博客 7451

由对象构成的数组去重总结

最近做项目时遇到了在localStorage里存了数组嵌套对象的数据需要去重的问题。找到了以下的解决方法,就分享一下: 原数组data的格式,现需要根据id将重复的数据删除: let data = [ { id: 000001, name: '张三', }, { id: 000002, name: 'John', }, { id: 000003, name: '李四',...

weixin_45393981的博客 313

常用的数组去重方法

数组的去重 一. 普通双循环去重 // 操作原数组 let array = [3, 1, 1, 1, '1', 7, 1, 3, 2, 5, 4, 3, 2, 5, 7, 8, 9, 8]; for(let i = 0, len = array.length; i<len; i++){ for(let j = i+1, len = array.length; j<len; j++){ if(array[i] === array[j]){ array

YMX2020的博客 518

JavaScript数组去重全解析:从Set到Map,从基础类型到对象属性去重

在数据处理中,数组去重是常见的基础操作,其核心原理是通过唯一性判断来消除重复元素。对于基本类型数组,ES6的Set数据结构因其基于哈希表实现,提供了接近O(1)时间复杂度的高效解决方案,成为现代开发的事实标准。然而,当处理对象数组时,简单的引用比较无法满足业务需求,需要更灵活的技术。此时,Map数据结构凭借其键值对的存储方式和键的唯一性,成为处理对象属性去重的关键技术。它允许开发者根据特定业务属性(如ID、订单号)进行去重,并能通过自定义比较函数实现保留最优记录的复杂逻辑。这种从基础集合类型到高级映射结构的

weixin_33937499的博客 352

for根据ID去重_简单介绍几种 js 中数组去重的方法

数组去重是js中最为常见的,相对来说,也是比较主要的一个知识点。下面,我们就去一探究竟。数组去重,顾名思义,就是把原数组中的重复的项给他干掉,然后返回一个新的没有重复项的数组。1、最简单最粗暴的set()方法Set()方法是es6语法中的,Set类似于数组,区别在于它所有的成员都是唯一的,不能有重复的值。话不多说,因为简单,我们直接上手。首先,var一个有多项重复的数组arr:var arr = ...

weixin_39539733的博客 448

js 对一个字段去重_简单介绍几种 js 中数组去重的方法

数组去重是js中最为常见的,相对来说,也是比较主要的一个知识点。下面,我们就去一探究竟。数组去重,顾名思义,就是把原数组中的重复的项给他干掉,然后返回一个新的没有重复项的数组。1、最简单最粗暴的set()方法Set()方法是es6语法中的,Set类似于数组,区别在于它所有的成员都是唯一的,不能有重复的值。话不多说,因为简单,我们直接上手。首先,var一个有多项重复的数组arr:var arr = ...

weixin_36394468的博客 544

原生JavaScript 工具函数 json数据去重 对象数组去重

自己摸索封装了一个json数据去重的工具函数 目前测试没出现问题 有看到的帮忙测测 function clear_repetition_ObjArr_Y(ObjArr){ var ObjArr = ObjArr? ObjArr:[] var chongfu_indArr = [] // 重复数据的下标数组 var chongfu_index =[] // 去重后的重...

小人物的点点滴滴 572

【JS】数组去重

【代码】【JS】数组去重、排序、索引

qq_46025307的博客 392

JavaScript数组去重的方式

对方法1的函数进行一个延伸,就是新建一个对象和数组,遍历数组的时候,判断数组元素时候是对象的属性,如果不是,则将该元素添加到目标数组,并且将该元素作为对象的新属性;通过Set数据结构和Array.from(),,set结构具有每个成员唯一性,本身就具有去重的功能,但是它是类数组而不是数组,所以通过Array.form函数对类数组做一个转换。通过reduce函数实现去重,也是需要定义一个对象,虽然不需要重新定义目标数组,是因为reduce函数的第二个参数,需要传入一个空数组即可,需要定义一个目标数组。

读心悦 1157
上一篇: 楼层号按顺序进行筛选,且不重复的方法(优化版)
下一篇: 数据格式话(例如:1234567.089转换成1,234,567.09)
飘走的落不离
博客等级 码龄7年 6粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值