js 数据去重

从零到一:嵌入式车载通信中间件VSOMEIP的跨平台构建之旅 本文详细介绍了嵌入式车载通信中间件VSOMEIP的跨平台构建过程,重点解析了交叉编译环境配置、Boost库编译、VSOMEIP定制化编译等关键技术环节。通过实战案例展示了在ARM架构嵌入式设备上的部署与调试方法,为开发者提供了一套完整的VSOMEIP嵌入式应用解决方案。 阅读详情

###1.最容易想到的方案 支持IE8+

function unique(arr) {
  var ret = []

  for (var i = 0; i < arr.length; i++) {
    var item = arr[i]
    if (ret.indexOf(item) === -1) {
      ret.push(item)
    }
  }

  return ret
}

###2.IE6-IE8 for两次 性能一般

var indexOf = [].indexOf ?
    function(arr, item) {
      return arr.indexOf(item)
    } :
    function indexOf(arr, item) {
      for (var i = 0; i < arr.length; i++) {
        if (arr[i] === item) {
          return i
        }
      }
      return -1
    }

function unique(arr) {
  var ret = []

  for (var i = 0; i < arr.length; i++) {
    var item = arr[i]
    if (indexOf(ret, item) === -1) {
      ret.push(item)
    }
  }

  return ret
}

##ES6写法
用之前先了解下Array.from()
###Array.from()将类数组转换成数组

let arrayLike = {
    0: 'wen', 
    1: '18',
    2: '男',
    3: ['haha','hehe','heihei'],
    'length': 4
}
let arr = Array.from(arrayLike)
console.log(arr) // ['wen','18','男',['haha','hehe','heihei']]

如果上面数据没有length属性呢?

let arrayLike = {
    0: 'wen', 
    1: '18',
    2: '男',
    3: ['haha','hehe','heihei'],
}
let arr = Array.from(arrayLike)
console.log(arr) // []空数组

我们得到了一个结论 类数组想要通过 Array.form()转换
该类数组对象必须具有length属性,用于指定数组的长度。如果没有length属性,那么转换后的数组是一个空数组。\color{red}{该类数组对象必须具有length属性,用于指定数组的长度。如果没有length属性,那么转换后的数组是一个空数组。}该类数组对象必须具有length属性,用于指定数组的长度。如果没有length属性,那么转换后的数组是一个空数组。

###将字符串转换为数组

let  str = 'hello world!';
console.log(Array.from(str)) ///["h", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d", "!"]

###Array.from还可以接受第二个参数,作用类似于数组的map方法,用来对每个元素进行处理,将处理后的值放入返回的数组。如下:

let arr = [12,34,56,78,9,520]
let set = new Set(arr)
console.log(Array.from(set, item => item + 1)) 
//[13, 35, 57, 79, 10, 521]

##1.Set + Array.from() 只能去重一阶数组

Array.from()方法可以将类数组对象(array−likeobj)和可迭代对象(iterableobjects−−eg:Map或者Set)转为常规数组\color{red}{Array.from()方法可以将类数组对象(array-like obj)和可迭代对象(iterable objects -- eg:Map或者 Set)转为常规数组}Array.from()方法可以将类数组对象(array−likeobj)和可迭代对象(iterableobjects−−eg:Map或者Set)转为常规数组

 let arr = Array.from(new Set([1,2,3,5,7,1,2,1]))
 console.log(arr); //[1,2,3,5,7]
 console.log(arr.length);//5
 for (let i = 0; i < arr.length; i++) {
 	console.log(arr[i]);
 	//1
 	//2
 	//3
 	//5
 	//7
 };

这个例子说明了转换之后的数据可以遍历 有长度。

 let arr = Array.from(new Set([1,2,3,5,7,1,2,1,[1,1,1]]))
 console.log(arr);
 /[,2,3,5,7,[1,1,1]]

二阶数组去重不能用Set+Array.form()

2 …[拓展运算符] + Set

 let arr = [...new Set([1,2,3,5,7,1,2,1])] 
console.log(arr);// [1,2,3,5,7]
Duilib的简单使用(五、DuiDesigner/DuiEditor的下载编译) 一、前言 在Duilib的简单使用(一、duilib demo)中我们介绍了利用duilib简单的构造一个项目 在Duilib的简单使用(二、xml实现界面与业务分离)中我们介绍了XML在duilib中的使用 在Duilib的简单使用(三、界面逻辑交互)中我们已经知道如何简单的进行界面的交互 在Duilib的简单使用(四、换肤)中,我们提了一下Duilib强大的一键换肤功能。 通过之前的说明,我们知道duilib是通过xml来分离界面和业务逻辑的,但是xml如果不能预览,那每次敲一个再运行一下看看效果,这不 阅读详情

相关推荐

js数组去重(9种方法),你都会了吗?

九种数组去重的方式和详解(包含对象数组去重)

前端菜鸟好先森的博客 8万+

Transformer-Based Attention Networks for Continuous Pixel-Wise Prediction 基于Transformer注意力网络连续像素级与估计

Transformer-Based Attention Networks for Continuous Pixel-Wise Prediction 基于Transformer注意力网络的连续的像素级的

MengYa_Dream的博客 4716

JavaScript的去重

JavaScript去重方法: 1.利用Set()+Array.from() 2.利用两层循环+数组的splice方法 3.利用数组的indexOf方法 4.利用数组的includes方法 5.利用数组的filter()+indexOf() 1)利用Set()+Array.from()的方法 Set对象:是值的集合,你可以按照插入的顺序迭代它的元素。 Set中的元素只会出现 一次,即Set中的元素是唯...

weixin_67651040的博客 1257

Microapp 接入vite子应用

MicroApp接入vite版本,干货满满,手把手步骤说明,加上报错说明,赶紧上车!

outsider76557的博客 4660

方法二:旋转机械动平衡精度计算

本文以实际案例为基础,系统阐述基于ISO 1940标准的动平衡精度G GG等级计算方法。通过角速度转换、许用剩余不平衡量e p e r e_{per}e per ​ 推导及G GG等级公式应用,结合惯性力偶矩、转子质量等参数,得出某转子系统的动平衡精度为G 40 G40G40。文中详细解析了公式原理与参数单位转换要点,并附完整ISO 1940动平衡等级参考表,为工程师提供从理论到实践的完整解决方案。研究结果表明,该方法可有效量化旋转机械的平衡精度,适用于风机、泵类等中低速设备的设计与调试,对提升设备运行

weixin_46153372的博客 922

JavaScript数组去重的常见方法 Set filter indexOf

一篇文章带你学会JavaScript中数组去重的常见方法

XSL_HR的博客 2815

《Kubernetes部署篇:基于x86_64+aarch64架构CPU+containerd一键离线部署容器版K8S1.33.3高可用集群》

《Kubernetes部署篇:基于x86_64+aarch64架构CPU+containerd一键离线部署容器版K8S1.33.3高可用集群》

东城绝神 1369

【面试题】JS的14种去重方法,看看你知道多少(包含数组对象去重)

JavaScript数组是一种特殊的对象,用于保存多个值在一个连续的内存空间中,也正是因为如此,我们在数组中存储大量数据,但是巨大的数据量难免会有重复的,但我们并不需要重复的数据,这个时候就需要就数组进行去重,来达到每个数组都是唯一的,这样的数据才是我们想要的。

web全栈开发的博客 694

naca翼型_STARCCM+计算二维翼型气动性能

STAR-CCM+计算二维翼型气动性能一算例背景机翼理论主要研究翼型在流体中运动时的力学特性。在工程领域中,机翼以升力面、控制面、叶片或桨叶等形式出现。舰船上的舵、水翼、减摇鳍等都是机翼,螺旋桨、汽轮机叶片和压缩机叶片也都是利用机翼原理工作的,而在研究船舶操纵性时,甚至还可把船体的水下部分看作一个巨大的机翼。随着航空科学的发展,世界各主要航空发达的国家建立了各种翼型系列。美国有NACA系...

weixin_39863741的博客 1万+

14 硬件工程师笔面试高频考点真题解析——逻辑门

逻辑门是数字电路的基本单元,实现布尔运算(如与、或、非、异或等)。OC门(集电极开路)和OD门(漏极开路)需外接上拉电阻,支持“线与”逻辑,适用于I2C总线等场景,避免推挽输出并联导致的短路问题。三态门具有高、低、高阻三种状态,用于总线分时复用。推挽输出因内置上下管,禁止并联,否则会引发电源短路。三者区别在于:推挽驱动强但不可并联;OC/OD需上拉,支持线与;三态门通过使能控制实现高阻隔离,适用于共享总线设计。

XU157303764的博客 1903

js数组去重常见的七种方法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

YuTao_X的博客 455

C#实战:从零搭建Vosk离线语音转文字系统

本文手把手教你用C#构建离线语音转文字系统,基于NAudio和Vosk实现全流程开发。首先介绍环境搭建,包括NuGet包安装和中文模型配置,强调16kHz单声道音频格式的关键性。接着详细解析音频预处理转换、Vosk模型初始化及识别过程的核心代码,提供多线程优化建议和实时识别扩展思路。文章包含80%以上代码注释,从常见问题排查到性能优化技巧,完整覆盖从"Hello World"到工业级部署的关键技术点,特别适合需要开发本地化语音识别应用的C#开发者。

墨夶的博客 753

javascript之数据去重

javascript数据去重 var arr = [1,5,5,5,6,6,6,3,3,2,2,1,1,9,9,9,"a","a","s","s"]; Array.prototype.unique = function(){ var newArr = []; var len = this.length; var obj = {}; for(var i = 0 ; i < len ; i++){ if(!obj[this[i]]){

weixin_44456354的博客 159

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

数据去重:JavaScript 实现的多种方式

在 JavaScript 中,实现数据去重有多种方法,每种方法都有其适用场景和优缺点。对于基本数据类型的数组去重,推荐使用Set对象,因为它的性能较高且代码简洁;对于兼容性要求较高的场景,可以使用filter方法;对于对象数组的去重,可以使用reduce方法结合find方法。在实际应用中,需要根据具体情况选择合适的方法。希望本文能帮助你更好地理解和实现 JavaScript 数据去重。

BANaanaa的博客 1134

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

JS 数据去重的 7 种实用方法:附完整代码与原理

本文总结了7种JavaScript数组去重方法,涵盖不同场景需求:1) Set去重(简洁高效,适合简单数据类型);2) indexOf/includes(兼容性好但性能差);3) 对象键名(性能优,需处理类型);4) filter+indexOf(函数式风格);5) Map去重(支持特殊值);6) 对象去重(JSON.stringify或属性比较);7) 排序后相邻比较。每种方法均附代码示例和适用场景分析,帮助开发者根据数据类型、性能需求和兼容性选择最佳方案。特别针对复杂对象去重提供了解决方案,如利用唯一标

前端圈边缘选手,擅长把 UI 稿 “翻译” 成代码,也擅长在 console.log 里写 “求救信号”。日常状态:要么在调像素级对齐,要么在查 “为什么这个样式只在我电脑上生效”。博客不搞高深理论,只唠实在干货~ 1324

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

JS 大数据去重的性能测试大全 千万级数据去重

web 前端或 nodejs 开发中遇到大数据循环、大数据去重时必然会遇到性能的问题。这时,搞清楚哪种方式去重效率最高,选择耗时最少的方案,无疑会带来很大的业务价值。

cdq2012的博客 828

js数组去重、数据和对象去重

数组去重网上的方法有很多种,我这里整理了几个是按最高效率进行排序的。 先创建两个数组: data () { return { playlist: ['1', '2', '3', '4', '5', '6'], list: ['1', '2', '3', '4'] } } 提示一下,里面两个数组里面有字符串、数字要去重的话,可以全部转换为字符串或者...

前端李小白的博客 446

JavaScript 数组高性能去重 千万级数据去重效率测试 高效去重详解

JavaScript 数组高性能去重 千万级数据去重效率测试 高效去重详解引言测试前提测试准备测试效率1.双重for循环 + splice2.for 循环加 indexOf / includes3.filter 加 indexOf4.使用sort排序后去重5.sort 加 reduce6.利用对象key唯一(hasOwnProperty)7.使用Map数据结构8.使用Set总结推荐循环效率排行结语...

rudy_zhou的博客 4262

用快马AI一键生成JS Set去重工具:高效处理重复数据的秘诀

JS Set是一个非常高效的去重工具,比传统的数组遍历去重要简洁得多合理的前端交互设计可以大大提升工具易用性使用像InsCode这样的平台可以极大提高开发效率,特别是对于小型工具的快速开发和部署如果你也想尝试创建一个类似的工具,不妨试试InsCode(快马)平台。它的实时预览和一键部署功能,让前端开发变得异常轻松。我自己实际使用下来,发现即使是前端新手也能快速上手,特别适合这种小型工具的开发。

SnowflakeJaguar14的博客 839

JS如何遍历去重&&下拉框动态获取后台数据

JS实现遍历去重,需要掌握两个工具,一个是.each(),另一个就是arr.indexof(value,index,arr),其中,.each(),另一个就是arr.indexof(value,index,arr),其中,.each(),另一个就是arr.indexof(value,index,arr),其中,.each是JQuery的循环遍历,indexof负责去重 JS去重后动态获取后台数据 演示代码: layui.use('form', function () { var $ .

weixin_44347111的博客 1455

JavaScript实现数据去重

利用indexOf 和 forEach 实现 Array.prototype.distinct = function(){ var arr = this, result = []; arr.forEach(function(item,index,arr){ var bool = arr.indexOf(item, index+1) //indexO...

一然 738

强数据处理逻辑(数组对象去重、姓名去重、数组对象合并排序)

(这里刚开始没想好,后来发现bug了,起初我是根据mergeId判断,因为合并完合并项和被合并项mergeId相同,我是判断相邻行的mergeId相同且手机号相同就合并,后来发现如果有三条合并数据(A/B/C)A和B的不同,A和C相同,那么因为A和C没有挨着就没有做到手机号去重并合并的效果)mergeId: 1752306068107,name:'A,B',adderss:'上海xxx',phone:'13073512485',sortIndex:1,}

jiaxiaohong_csdn的博客 962

js两组数据比较获得去重后的数据

var row = [{"datapool_id":"1","index_name":"月指标1"},{"datapool_id":"1","index_name":"月指标1"}]; var twoZb = [{"datapool_id":"2","index_name":"月指标4"},{"datapool_id":"4","index_name":"月指标5"}]; //这里我县循环的是...

linxd的博客 591

【利用 JavaScript 的 Set 数据结构实现数组去重】

在 JavaScript 编程中,处理数组时经常会遇到需要去除重复元素的情况。虽然可以通过多种方法实现数组去重,但使用` Set `数据结构是一种非常简洁且高效的方式。本文将介绍如何使用` Set `来去除数组中的重复元素,并详细解释其背后的逻辑和技术原理。

烂然星陈的博客 669

java大量数据的排序去重,[Java教程]js 排序,去重

[Java教程]js 排序,去重02017-08-22 10:00:07前几天 有一个需求要做一个 勾选的按钮 ,用的前端框架时extjs 。需求是这样的:选择数据后点击勾选 会把数据 放到一个全局变量里,然后点击另外一个提交按钮 弹出一个窗口 加载这些已经勾选的数据,进行预览勾选的数据和提交。隐藏的需求之一就是预览的时候不能看到重复的数据,或者说勾选的时候需要去重。实现如下:/** *...

weixin_42584507的博客 591
上一篇: 看图解HTTP 笔记
下一篇: 基于ngx-echarts和angular-gridster2 做的基于dashboard例子
wen_binObject
博客等级 码龄10年 51粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值