js 数组去重的几种方法

解决 TensorFlow 和 Keras 的 Python 版本兼容问题:详细技术指南 本文提供了TensorFlow和Keras与Python版本不兼容问题的完整解决方案。通过版本对照表指出不同TensorFlow版本对应的Python支持范围,强调2.13.x仅支持Python 3.9-3.11,且不兼容Python 3.12+。给出最佳实践建议:使用虚拟环境管理项目依赖,推荐venv或conda创建独立环境;指导正确安装TensorFlow和Keras版本,建议优先使用tf.keras避免冲突;针对常见报错如DLL加载失败、模块导入错误等提供具体解决方法。最后给出一个在兼容环境中运行的M 阅读详情

1. new Set 的两种方法

let arr = [1, 0, 0, 2, 9, 8, 3, 1];

function unique(arr) {

    return Array.from(new Set(arr));

}

console.log(unique(arr));// [1, 0, 2, 9, 8, 3]

console.log([...new Set(arr)]);// [1, 0, 2, 9, 8, 3]

2. 使用双重for循环,再利用数组的splice方法去重(ES5常用)

let arr = [1, 5, 6, 0, 7, 3, 0, 5, 9, 5];
function unique(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;
}
unique(arr);
// 输出 [1, 5, 6, 0, 7, 3, 9]

3. 利用数组的indexOf方法去重

var arr = [1, -5, -4, 0, -4, 7, 7, 3];
function unique(arr) {
  let arr1 = [];
  for (let i = 0; i < arr.length; i++) {
    if (arr1.indexOf(arr[i]) === -1) {
      arr1.push(arr[i]);
    }
  }
  return arr1;
}
console.log(unique(arr));
// [1, -5, -4, 0, 7, 3]

4. 利用数组的sort方法去重(相邻元素对比法)

var arr = [5, 7, 1, 8, 1, 8, 3, 4, 9, 7];
function unique(arr) {
  let arr1 = [];
  arr.sort();
  arr1.push(arr[0]);
  for (let i = 1; i < arr.length; i++) {
    if (arr[i] !== arr[i - 1]) {
      arr1.push(arr[i]);
    }
  }
  return arr1;
}
console.log(unique(arr));
// [1, 3, 4, 5, 7, 8, 9]

5. 利用对象的属性不能相同的特点去重(不建议用,有缺陷),利用对象和数组的结合

var arr = [1, 3, 8, 9, 3, 5, 4, 4, 6, 6, 2];
function unique(arr) {
  let arr1 = [];
  let obj = {};
  for (let i = 0; i < arr.length; i++) {
    if (!obj[arr[i]]) {
      obj[arr[i]] = 1;
      arr1.push(arr[i]);
    } else {
      obj[arr[i]]++;
    }
  }
  return arr1;
}
console.log(unique(arr)); //  1, 3, 8, 9, 5, 4, 6, 2

6. 利用数组的includes,返回true,false 的特性

var arr = [-1, 0, 8, -3, -1, 5, 5, 7];
function unique(arr) {
  let arr1 = [];
  for (let i = 0; i < arr.length; i++) {
    if (!arr1.includes(arr[i])) {
      arr1.push(arr[i]);
    }
  }
  return arr1;
}
console.log(unique(arr)); //  -1, 0, 8, -3, 5, 7

7. filter 方式过滤,第一次出现的索引等于当前索引

var arr = [1, 2, 8, 9, 5, 8, 4, 0, 4];
function unique(arr) {
  return arr.filter((item, index) => {
    return arr.indexOf(item, 0) === index;
  });
}
console.log(unique(arr));
// [1, 2, 8, 9, 5, 4, 0]

8. 递归, 数组赋值一个改变一个也改变,要想不改变原数组,需要for 循环赋值

var arr = [1, 1, 5, 6, 0, 9, 3, 0, 6];
function unique(arr) {
  let arr1 = [];
  for (let i = 0; i < arr.length; i++) {
    arr1.push(arr[i]);
  }
  arr1.sort();
  let len = arr1.length;
  function loop(index) {
    if (index >= 1) {
      if (arr1[index] === arr1[index - 1]) {
        arr1.splice(index, 1);
      }
      index--;
      loop(index);
    }
  }
  loop(len - 1);
  return arr1;
}
console.log(unique(arr));
console.log(arr);

9. 利用ES6中的Map方法去重,创建一个空Map数据结构,遍历需要去重的数组,把数组的每一个元素作为key存到Map中。由于Map中不会出现相同的key值,所以最终得到的就是去重后的结果

let arr = [1, 0, 8, 3, -9, 1, 0, -9, 7];
function unique(arr) {
  let map1 = new Map();
  let arr1 = [];
  for (let i = 0; i < arr.length; i++) {
    if (!map1.has(arr[i])) {
      arr1.push(arr[i]);
      map1.set(arr[i], 2);
    } else {
      map1.set(arr[i], 1);
    }
  }
  let obj = {};
  obj.arr1 = arr1;
  obj.map1 = map1;
  return obj;
}
console.log(unique(arr)); // 1, 0, 8, 3, -9, 7

【编号326】全国地灾数据全国25万多个地质灾害点空间分布数据 全国地质灾害点分布数据涵盖25万多个各类灾害点信息,为灾害防治提供重要依据。通过分析灾害分布规律,可识别高风险区,指导监测预警、应急避险和基础设施建设。多地成功案例(如湖北兴山崩塌避险、重庆长寿滑坡预警、湖南"挪床行动")证明,提前预警和科学防治能有效避免人员伤亡。云南省2024年通过预警体系成功避让31起灾害,保护1342人生命安全。这些实践表明,地质灾害防治需结合科技手段与群防体系,实现早预警、早处置。 阅读详情

相关推荐

Halcon 3D视觉实战:5步将线激光高度数据转为可分析的深度图与点云

本文详细介绍了如何利用Halcon平台将线激光高度数据转换为深度图与点云的5步实战方法。通过具体代码示例和工业检测案例(如锂电池胶水测量),帮助工程师高效处理3D视觉数据,实现从原始数据到三维可视化的完整技术链路。

weixin_29039773的博客 361

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

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

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

STM32F103跑LVGL,用DMA加速刷屏,800*480大屏也能丝滑

本文详细介绍了如何在STM32F103芯片上通过DMA加速和内存优化,实现800*480大屏的LVGL流畅运行。通过FSMC+DMA硬件架构优化、双缓冲机制和LVGL参数调优,显著提升了界面刷新率和响应速度,适用于嵌入式GUI开发中的高性能需求场景。

weixin_30357231的博客 376

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

1、借助ES6提供的Set结构 new Set() 简单好用 强烈推荐 直接给一个新的数组里面,利用es6的延展运算符 var arr = [1,9,8,8,7,2,5,3,3,3,2,3,1,4,5,444,55,22]; console.log(arr); function noRepeat(arr){ var newArr = [...new Set(arr)]; //利用了Set结构不能接收重复数据的特点 return newArr } va

Lguorong的博客 14万+

手把手教你用Logisim搞定华科计组实验:单总线CPU硬布线控制器设计(含Excel自动生成电路技巧)

本文详细解析了如何使用Logisim完成华科计组实验中的单总线CPU硬布线控制器设计,特别分享了利用Excel自动生成电路逻辑的高效技巧。从实验准备、状态机表格填写到模块化构建和系统联调,提供全流程实战指导,帮助读者快速掌握计算机组成原理核心概念,大幅提升实验效率。

weixin_28744423的博客 321

STM32CubeMX | HAL库实战:ADC多通道采集模式深度解析(轮询、DMA、TIM触发)

本文深度解析了基于STM32CubeMX与HAL库实现ADC多通道数据采集的三种核心模式:轮询、DMA以及TIM触发DMA。文章通过对比分析,详细阐述了各模式的配置要点、适用场景与潜在陷阱,旨在帮助开发者根据实时性、CPU占用及采样精度等需求,选择并实现高效稳定的多通道数据采集方案。

postgres8guard的博客 971

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

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

青春木鱼的博客 1万+

Open3D 模拟退火算法优化的ICP点云配准

传统ICP算法易陷入局部最优且对初始位姿敏感,而SA算法通过概率性接受劣解,能够在高温阶段广泛探索解空间,低温阶段精细收敛。

点云侠的博客 244

JS数组去重的12种方法

js去重

wangshiqi666的博客 7591

YOLO系列算法改进 | C2PSA改进篇 | 融合FSD频域结构解耦模块 | 双域解耦感知,兼顾全局亮度与局部纹理,适应红外小目标与边缘部署场景 | ICME 2026

YOLO系列算法改进 | C2PSA改进篇 | 融合FSD频域结构解耦模块 | 双域解耦感知,兼顾全局亮度与局部纹理,适应红外小目标与边缘部署场景 | ICME 2026 (以YOLO26最新目标检测模型为基础,利用C2PSA_FSD创新模块进行改进)

2502_91881744的博客 315

利用 HTML5 与 SICF 打造 CRM WebClient UI 多附件上传 —— 从原型到生产的全流程揭秘

通过HTML5 标准 + SICF 服务 + BOL/GOS API的三位一体方案,我们无需修改 SAP 标准代码,就能让 CRM WebClient UI 获得现代化的多附件上传体验。浏览器负责多选与进度提示,SICF 负责安全中转,ABAP 负责权限校验与落库。你可以先在质量系统快速原型,再逐步完善权限、异常处理与 UI 细节。按照本文的方法落地,哪怕一次上传几百份文件,也能轻松搞定,真正把时间还给业务。

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

js数组去重(9种方法)搬运自:前端菜鸟好先森

js数组去重(9种方法)搬运自:前端菜鸟好先森

MoFe1的博客 4837

Codex 实战 Skills:编写 Skill 自动为 ESP32 芯片生成 MQTT 订阅与发布的基础代码

为了更清晰地展示 Skill 的工作原理和两种语言的差异,以下提供原理图和比对表格。本文深入探讨了如何利用 Codex 的 Agent 智能体技能(Skills)自动化 ESP32 与 MQTT 通信的代码生成过程。我们首先分析了 IoT 开发的痛点,然后详细设计了 Skill 的输入配置,并分别提供了 MicroPython 和 C++ 两种语言的完整代码实现。通过对比两种语言的优缺点,帮助开发者根据项目需求选择合适的语言。最后,我们提供了详细的运行指南,确保开发者能够快速上手。Skill 设计哲学。

yueyeguzhuo的专栏 82

【JavaScript】JS数组去重的几种常见方法

JS数组去重的几种常见方法 一、简单的去重方法 // 最简单数组去重法 /* * 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中 * IE8以下不支持数组的indexOf方法 * */ function uniq(array){ var temp = []; //一个新的临时数组 for(var i = 0; i &amp;lt; array.length; i++){ ...

Dream_Lee的博客 1983

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

JS数组去重的几种常用方法

JS数组去重的几种常用方法

qq_46187765的博客 1259

Devexpress16.2.6破解工具

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

JS数组去重的几种常见方法

JS数组去重的几种常见方法 一、简单的去重方法 // IE8以下不支持数组的indexOf方法 function Repet(array){ var temp = []; //一个新的临时数组 for(var i = 0; i < array.length; i++){ if(temp.indexOf(array[i]) == -1){ temp.push(array[i]); } } re...

jinlovo 445

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

JS数组去重的几种方法

JS数组去重 今天来聊一聊JS数组去重的一些方法,我总结了6种方法,还有一点就是,我使用的JS编码风格是JavaScript Standard风格,是不加分号的(避免给大家造成误会)。 第一种:遍历数组法 这种方法最简单最直观,也最容易理解,代码如下: var arr = [2, 8, 5, 0, 5, 2, 6, 7, 2] var newArr = [] for (var i = ...

weixin_33957648的博客 592

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数组去重的几种方法

1. 利用ES6 Set去重(ES6中最常用) function unique(arr){   return Array.from(new Set(arr)); } var arr=[1,1,2,3,3,3,4,4,4,5,5,'1','true',true]; console.log(unique(arr)); 此种方法对{}一些符号不起作用,可用于字符串和数字。 2. 利用for嵌套,然后splice去重(ES5中常用) function unique(arr){ fo

亚丝娜 191

JS数组去重几种方法

JS数组去重几种方法 1. 利用ES6 Set去重(ES6中最常用) ``` function unique(arr){   return Array.from(new Set(arr)); } var arr=[1,1,2,3,3,3,4,4,4,5,5,'1','true',true]; console.log(unique(arr)); ``` 此种方法对{}一些符号不起作用,可...

lixiaoyan_star的博客 2643

【JS数组去重】JS几种数组去重方法

数组去重 var arr = [5,6,7,9,1,2,3,2,6,8,4,2,5,7,] var obj = {}; var arr1 = []; for(var i = 0 ; i < arr.length ; i++){ if(!obj[arr[i]]){ obj[arr[i]] = 1; arr2.push(arr[i]);...

菜鸟博客 382

js中数组去重的几种方法

在学习数组的时候,我们总是能遇到给数组去掉其中相同的值的问题今天来写一写数组的几种去重方法。 不用api去重 首先我们分析一下这个题的思路,我们既然想要给数组去重,让重复的值只出现一次,那么我们首先就得定义一个空数组去存放不重复的值,定义完了。我们得去循环原数组的值,取出原数组的值。取出了原数组的值干嘛呢。肯定是要和新数组的每个值去比较,如果发现原数组的值在新数组中有相同的,就不加进去,如果没有相...

weixin_45517927的博客 612
上一篇: js 数组操作方法(不改变原数组与改变原数组方法)
下一篇: git clone fatal authentication failed for ‘请求路径‘, git clone 用户没有权限
椰子小姐姐
博客等级 码龄14年 3粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值