数组去重方法

激光SLAM总结——Fast LIO / Fast LIO2 / Faster LIO 激光SLAM总结——Fast LIO / Fast LIO2 / Faster LIO 在之前的工作中有接触过LOAM,最近在工作中又接触到Faster LIO相关的工作,于是想着对Fast LIO / Fast LIO2 / Faster LIO这一系列工作进行一个简单的总结,以加深自己对激光SLAM算法的理解,之前总结过的一些和激光SLAM算法相关的博客还有,感兴趣的同学可以一起学习讨论: 激光SLAM总结——VLOAM / LIMO算法解析 激光SLAM总结——LIO-Mapping / LIOM / 阅读详情

不管是在面试中还是在实际开发中我们经常见到数组去重,在这里小白为大家总结了一些去重的方式

-------------------------- 大家有好的方法可以分享 -------------------

1. 利用indexOf去重

 let arr = [1,2,2,3,2,2,1,1,2,3];
        // indexOf
        //数组去重
        function noRepeatArr(arr){
            let list = [];
            for(let i = 0,len = arr.length;i < len;i ++){
                if(list.indexOf(arr[i]) === -1){
                    list.push(arr[i]); //[1,2,3]
                }
            }
            return list;
        }
noRepeatArr(arr)//[1,2,3]

2. 利用数组下标来判断

     //数组下标判断法
    function unique3(array){
        var n = [array[0]]; //结果数组
        for(var i = 1; i < array.length; i++) { //从第二项开始遍历
            if (array.indexOf(array[i]) == i) 
                n.push(array[i]);
        }
        return n;
    }

3. Set天然去重

//ES6
es6方法数组去重
arr=[...new Set(arr)];
//es6方法数组去重,第二种方法
function dedupe(array) {
  return Array.from(new Set(array));       //Array.from()能把set结构转换为数组
}

4. 过滤判断下标方法

//这个方法是偶然间在网上看到的
// let arrChong = [1,2,3,2,4,5,1]
// let arrc = arrChong
arrChong = arrChong.filter((item,index)=>{
    return arrc.indexOf(item,0) === index
})
arrChong // [1,2,3,4,5]

数组中对象去重

5. 通过对象.属性的方式来判断对象中是否存在key

var arr = [{"key":"小靳靳"}, {"key":"小靳靳"}, {"key":"小帅"}, {"key":"小帅03"}, {"key":"小帅"}];
var arrs = [];
var obj = {};
    for (var i = 0; i < arr.length; i++) {
        if (!obj[arr[i].key]) {
            arrs.push(arr[i]);
            obj[arr[i].key] = true;
        }
    }
    console.log(arrs)

6. 通过findIndex查找key值

var arr = [{"01":"小靳靳"}, {"01":"小靳靳"}, {"02":"小帅"}, {"03":"小帅03"}, {"02":"小帅"}];
var arrs = [];
    arr.map((item)=>{ //遍历数组
        let index = arrs.findIndex((items)=>{ //查找key值,找不到返回-1
            return items[Object.keys(items)] ==  item[Object.keys(item)]
        })
        if(index == -1){
            arrs.push(item)
        }
    })

7. new map方法

// 数组对象去重
let arr = [
    {
        "name": "安徽省"
    },
    {
        "name": "安徽省"
    },
    {
        "name": "山西省"
    }
]
const map = new Map();
for ( const item of arr ) {
    if ( !map.has( item.name ) ) {   //判断是否存在
        map.set( item.name, item );  //设置属性,属性值
    } 
}
console.log( [...map.values()]) //[{name: '安徽省'},{name: '山西省'}]

在Cursor IDE中集成Datadog监控:自然语言查询实战指南 在云原生和微服务架构中,可观测性(Observability)已成为保障系统稳定性的核心技术支柱。其核心原理是通过日志(Logs)、指标(Metrics)和追踪(Traces)三大支柱,实时采集并呈现系统的运行状态。这项技术的价值在于,它让开发者能够透视复杂的分布式系统,快速定位性能瓶颈与故障根因。在实际的工程实践中,开发人员常常需要在编码环境与监控平台之间频繁切换,这种上下文切换严重影响了排障效率。本文聚焦于如何利用Model Context Protocol(MCP),将强大的Datadog可观测性平台 阅读详情

相关推荐

Windows10 搭建 FTP 服务器

问题: 有这么一个需求,博主需要对班级同学的信息进行收集,同学的信息是一个个的文件, 正常是每个同学将自己的信息打包压缩通过 QQ 或者邮箱方式发送给博主, 博主一个个接收这些压缩包,然后进行解压,再统一放到一个文件夹下, 但是博主觉得这样子实在是太麻烦了,如果某一个同学的信息来回变动,就需要接收很多次,更改很多次, 另外如果消息过多还会产生漏掉某个同学的信息的问题。 解决方法: 如果可以使...

assiduous_me的博客 3965

js 数组中有指定元素,对象中有指定key

1、数组中是否有某个元素 1.1 a.indexOf() 1.2 a.find() 1.2 a.findIndex() let array = ['a', 'b', 'c']; console.log(array.indexOf('d')) // -1 // 用于找出第一个符合条件的数组元素 /** * 它的参数是一个回调函数,所有数组元素依次遍历该回调函数, * 直到找出第一个返回值为true的元素,然后返回该元素,否则返回undefined。 */ console.log(array.find(

weixin_43915401的博客 1215

聚类分析之——Kmeans算法(一)

原创地址:http://www.toutiao.com/i6399454239554273794/ 聚类分析是一种静态数据分析方法,常被用于数据挖掘、机器学习、模式识别等领域,聚类是一种无监督式的学习方法。它是在未知样本类别的情况下,通过计算样本彼此间的距离(欧式距离,马式距离,汉明距离,余弦距离等)来估计样本所属类别。从结构性来划分,聚类方法分为自上而下和自下而上两种方法。聚类的算法有很多

june2017的博客 3531

数组去重7种方法

1.双重for+splice function arrDup(arr){ for(let i=0;i<arr.length;i++){ for(let j=i+1;j<arr.length;j++){ if(arr[i] == arr[j]){ arr.splice(j,1) j-- } } } return arr } con

m0_52611940的博客 301

CMakeTestCCompiler.cmake错误解决

CMakeTestCCompiler.cmake错误解决欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 最近编译项目的时候,遇到一个cmake的错误,具体错误信息如下: /path-to-pr

昨夜星辰的博客 2万+

YOLO11实战:手把手教你优化钢材表面缺陷识别模型(基于NEU-DET数据集)

本文详细介绍了如何使用YOLO11优化钢材表面缺陷识别模型,基于NEU-DET数据集进行实战训练。从数据增强、模型架构优化到训练过程控制,全面解析提升钢材缺陷检测性能的关键技术,特别针对裂纹、划痕等典型缺陷提出针对性解决方案。

weixin_29081163的博客 379

数组去重的方法

数组去重

七七的博客 607

用 Coze 打造纯自动化 AI 情报助手

本文将引导您逐步构建一个简易的AI情报助手,从提示词到工作流,再到卡片消息,详细讲解了如何利用Coze平台开发自动化工具。过程简单易懂,何不亲自动手一试?如果您对此类内容感兴趣,敬请关注本作者。未来,我将带来更多精彩的AI工具教程,助您迅速掌握各类AI应用。在这个AI时代,让您领先一步。t=O83A2AGI.NET AI 教程 震撼!用 Coze 打造纯自动化 AI 情报助手震撼!

xinzhaobuxuan的博客 2531

使用findIndex对两个数组去重--JS高级

数组合并去重

freddy的博客 315

游戏引擎定制化:大厂如何玩转性能极限(大白话生动有趣版)

游戏大厂如何深度定制游戏引擎?本文系统解析了商业引擎的局限性及大厂定制化的核心诉求。主要内容包括: 大厂定制引擎的根本原因:性能瓶颈、差异化需求、自有生态整合等 主流引擎的优劣势对比及适用场景 定制化重点领域:渲染管线优化、物理系统重构、网络架构改造等 全流程定制方案:从需求分析到模块重构再到工具链开发 典型案例:如腾讯CF手游的渲染优化、原神的热更新系统等 文章指出,顶级游戏产品必须对引擎核心模块动刀,通过深度定制实现性能突破和创新功能开发。同时提供了风险规避建议和技术演进趋势,为游戏开发者提供了宝贵的实

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 635

把 LLM 编排能力塞进 ABAP 系统里,ZLLM 仓库的工程价值与 SAP 落地场景

ZLLM项目将LLM应用开发中的常见工程问题引入ABAP原生环境,为SAP系统提供AI工作流构建能力。它类似ABAP版的LangChain,支持Chain组合、Prompt模板、状态传递等核心功能,强调纯ABAP实现、延迟执行以及与ABAP数据结构的深度集成。项目包含工厂类、LLM客户端、负载均衡器等模块,特别设计了能处理ABAP内表和结构的模板引擎,使业务数据可直接用于Prompt生成。通过Step和Flow机制支持复杂业务过程编排,并采用延迟执行和并行处理优化批量任务性能。该项目为ABAP开发者提供了在

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 61

数组去重findIndex

数组去重 function arrayUnique (arr) { if (!len) { return [] } let tmp = [] for (let i = 0; i < len.length; i++) { if (tmp.findIndex((v) => JSON.stringify(v) === JSON.stringify(arr[i])) === -1) { tmp.push(arr[i]) } } return t

weixin_44705688的博客 881

基于STM32L4XX、HAL库的AD7124-8BCPZ模数转换器ADC驱动程序设计

/ 公式: Voltage = (adc_value / (2^23 - 1)) * Vref。// 模式控制位[7:5]=000 (连续转换模式)// 3.2 配置通道0,使其使用AIN0(+)和AIN1(-),并关联到配置0和滤波器0。= 0x14) { // AD7124-8的ID是0x14。// 双极性操作,缓冲AINP/AINN。

zhusl6688的博客 376

超全的12种数组去重的方法

前言 数组去重,可以说是一个比较常见的面试题,今天来盘点一下都有哪些方法可以实现数组去重。 方法1、双重for循环 这是一个最笨的方法,双重循环。 var arr = [1, 2, 3,4 ,5,6, 4, 3, 8, 1] // 数组去重: // 方法1: 双重for 循环 function newArrFn (arr) { // 创建一个新的空数组 let newArr = [arr[0]] for(let i = 1;i<arr.len

m0_64564920的博客 4万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

超全的数组去重12种方法

前言 数组去重,可以说是一个比较常见的面试题,今天来盘点一下都有哪些方法可以实现数组去重。 方法1、双重for循环 这是一个最笨的方法,双重循环。 var arr = [1, 2, 3,4 ,5,6, 4, 3, 8, 1] // 数组去重: // 方法1: 双重for 循环 function newArrFn (arr) { // 创建一个新的空数组 let newArr = [] for(let i = 0;i<arr.length;i+

m0_64564920的博客 3万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

JS数组怎么去重?| JavaScript中数组去重的14种方法

JS数组怎么去重?JavaScript中数组去重的13种方法,甚是详细,遇到数组去重问题时,可翻阅查看对应的去重方法

青春木鱼的博客 1万+

lwip-2.0.3

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

数组里面对象去重的3种方法

数组里面对象去重的方法挺多的,下面列了几种方法任君选择! 下面是将要过滤的数据,将arr里面id重复的数据去掉(下面方法中用的arr都是这组数据哦)。 var arr = [ {id: 1, name: '周瑜1'}, {id: 3, name: '王昭君1'}, {id: 2, name: '李白1'}, {id: 1, name: '周瑜2'}, {id: 2, na...

榴莲不好吃的专栏 3万+

js数组中对象去重的方法

简单说一下数组中对象去重的方法 假设当前有这样一个数组 let arr = [{ key: '01', value: '乐乐' },{ key: '02', value: '博博' },{ key: '03', value: '淘淘' },{ key: '04', v...

pinbolei的博客 2万+

封装数组去重的方法

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

m0_52912501的博客 1451

数组去重以及数组对象去重方法总结

数组去重以及数组对象去重方法总结一、数组对象去重1、reduce方法2、利用原生js+空对象+空数组3、利用原生js+标志位+空数组4、利用双指针思想+splice方法二、数组去重1、利用新数组+标志位2、排序+新数组+相邻比较3、新对象+新数组4、新数组+indexOf5、新数组+includes6、新数组+filter+includes7、新数组+foreach+includes8、 双指针思想+splice9、新数组+lastIndexOf10、ES6的set 方法 一、数组对象去重 1、reduce

丑小鸭变黑天鹅的博客 6979

最实用的数组去重方法、数组的相邻元素的去重方法和对象数组的去重方法

实现的效果: 数组的相邻元素去重: const orginArr=[1,1,2,3,3,4,4,5,5,6,5,4,3,2,2,1,1], const unique = (arr) => { let newArr=[arr[0]] for(let i=1;i<arr.length;i++){ if(arr[i]!==newArr[newArr.length-1]){ ...

Zeng__Yi的博客 2367

js数组去重的几种简单方法

数组去重的定义就是要将数组中重复的值剔除 第一种方法:使用indexOf数组去重 var arr=["a","b","c","a","b"]; var arr1=[]; for(var i=0;i<arr.length;i++){ if(arr1.indexOf(arr[i])==-1){ arr1.push(arr[i]); } } console.lo

爱吃糖果儿哒莲 3498

JS中数组去重的五种方法

数组去重的几种方法(JavaScript版) 目录 数组去重的几种方法(JavaScript版) 第一种:双重for循环去重 方法二:单层for循环,多了一个sort函数 方法三 方法四: 方法五 前言:你需要知道JavaScript中的splice函数的用法 splice函数介绍: splice函数用法:splice函数介绍看不懂没关系,怎么用一看例子一目了然 第一种:双重for循环去重 原理 两两比较如果相等的话就删除第二个例如:1,2,3,4...

qq_51066068的博客 1万+

Java数组去重的方法

//第一种方式:最开始想到的是利用Set集合的不可重复性进行元素过滤 public static Object[] oneClear(Object[] arr){ Set set = new HashSet(); for(int i=0;i<arr.length;i++){   set.add(arr[i]);  } return set.toArray(); } ...

诚的博客 5015

JS 数组去重的4个方法

好嫁过

weixin_48496745的博客 1万+

js数组去重的5种方法

js数组去重五种方法 今天来聊一聊JS数组去重的一些方法,包括一些网上看到的和自己总结的,总共5种方法(ES5)。 第一种:遍历数组法 这种方法最简单最直观,也最容易理解,代码如下: var arr = [2, 8, 5, 0, 5, 2, 6, 7, 2] var newArr = [] for (var i = 0; i &lt; arr.length; i++) { ...

lelara的博客 6089
上一篇: 关于深拷贝与浅拷贝的区别
下一篇: element-ui 页面刷新自动弹Message问题
JSON_JSJ
博客等级 码龄5年 4粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JSON_JSJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值