js 数据去重

Nexus7二代刷机教程(新手向) 该教程将使用lineageos(Android 11),同时借鉴了lineage官方的教程和songelf的教程。 阅读详情

###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]
RedCap:一种通信技术的概述 总结起来,RedCap是一种基于数据包交换的通信技术,它提供了一种高效、可靠的数据传输机制。通过使用RedCap,我们可以轻松地发送和接收数据包,并确保数据的完整性和正确性。在上面的示例中,我们首先导入了RedCap库,并创建了一个RedCap实例。然后,我们定义了目标地址和源地址,并创建了一个数据包,其中包含了目标地址、源地址和要发送的数据。本文将介绍RedCap的基本原理和使用方法,并提供一些相关的源代码示例。RedCap还提供了其他一些功能,如数据包的重传机制、流量控制和拥塞控制等。 阅读详情

相关推荐

浙政钉H5应用上架实战:从环境配置到发布避坑指南

本文详细解析浙政钉H5应用上架全流程,从环境配置到发布避坑指南。重点介绍Vue 2.6 + Node 14.21.3的稳定开发环境搭建、项目结构规范及常见报错解决方案,帮助开发者高效完成浙政钉H5应用上架流程。

weixin_27943395的博客 286

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

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

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

[QDS]从零开始,写第一个Qt Design Studio到程序调用的项目

最近在使用Qt Design Studio进行开发,但是简中网上要不就是只搜得到Qt Designer(Qt Creator内部库),要不就只搜得到一点营销号不知道从哪里搬来的账号,鉴于Qt Design Studio是一个这么强大的软件,自然是需要来进行一下小小的实践的。所以开了这篇文章,方便没有使用过Qt Design Studio 和 QML的开发者也可以快速上手QDS(Qt Design Studio)。在本文中,你将学会如何使用QDS开发一个简单的QML程序,与你的C++后端代码进行交流。

Andius的博客 8215

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

睿尔曼复合机器人之底盘操作流程

控制键”按下后,可在键盘上通过‘i’(向前),‘k’(向后),‘j’(向左旋转),‘l’(向右旋转)四个按键对底盘进行运动控制。选中禁⾏线功能后,使⽤⿏标在界⾯内点击选择起点,继续在其他地⽅点击,两点之间会连成⼀条线,可以进⾏多次连续点击,形成连续线条。4)扫图完成后,软件会重新启动,返回到监控页面,点击“激光”可看到当前机器激光扫描的实时数据,在页面上表现为红色边界线,点击菜单栏“控制”键使底盘在一定范围内运动,扫描到尽可能多的边界线,可发现与实际地图的黑色边界线不同,需要进行手动校正。

realman_Rop的博客 1475

PostgreSQL使用 pg_rman物理备份搭建流复制备库(streaming replication standby)

摘要:使用pg_rman备份搭建PostgreSQL流复制备库 本文详细介绍了利用pg_rman工具快速搭建PostgreSQL流复制备库的完整流程。该方法结合物理备份的高效性和流复制的实时性,特别适合大型数据库环境。主要内容包括:主库上的pg_rman安装配置、全量备份操作;备份文件传输至备库;备库数据目录准备及恢复;流复制参数配置;以及最终的启动验证步骤。文章还提供了架构示意图和关键配置示例,并包含常见问题排查建议,如备库无法启动或复制卡顿情况的处理方法。整个流程强调通过.pgpass文件管理密码的安全

liumangtuzi888的博客 1169

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

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

XSL_HR的博客 2815

SAP FICO实操:如何修改已发生业务数据的成本中心公司代码(附RKACOR06程序运行指南)

本文详细解析了SAP FICO系统中使用RKACOR06程序修改已发生业务数据的成本中心和公司代码的实操方法。通过实战案例分享,提供从前期准备到后期验证的全流程指南,帮助企业应对组织架构重组或财务核算体系调整时的数据迁移挑战,特别适用于跨公司代码的成本中心划转场景。

weixin_27303545的博客 192

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

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

web全栈开发的博客 694

OpenStack 之 Epoxy版本 部署实战

OpenStack Epoxy 是 OpenStack 的第 31 个版本,其版本号为 2025.1,于 2025 年 4 月 2 日正式发布。

求知若渴,虚心若愚。 236

10种电阻综合对比——《器件手册--电阻》

可变电阻在电子设备中也有很多用途,如在收音机的音量调节电路中,通过旋转可变电阻的旋钮来改变电路中的电阻值,从而改变通过扬声器的电流,实现音量的调节。根据电阻定律,电阻R = ρ(L/S),其中ρ是导体材料的电阻率,L是导体的长度,S是导体的横截面积。比如,同样材料制成的两根电线,粗的电线电阻比细的电线电阻小,长的电线电阻比短的电线电阻大。电流采样电阻的工作原理基于欧姆定律,即电阻两端的电压与通过电阻的电流成正比,公式为 I = V/R,其中 I是电流,V是电阻两端的电压,R 是电阻值。

XU157303764的博客 3147

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

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

YuTao_X的博客 455

CAN轴控制流【6041,6040】

【代码】CAN轴控制流【6041,6040】

cfqq1989的博客 1783

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

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

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

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

BANaanaa的博客 1134

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

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

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

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

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

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

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、付费专栏及课程。

余额充值