首页 > 编程语言 >JavaScript学习笔记—数组去重实例

JavaScript学习笔记—数组去重实例

时间:2023-01-23 02:25:57浏览次数:40  
标签:arr JavaScript const newArr 元素 笔记 实例 let 数组

编写代码去除数组中重复的元素

const arr = [1,2,1,3,2,2,4,5,5,6,7];
// 分别获取数组中的元素
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);
      /*
       当arr[i]和arr[j]相同时,会删除j位置的元素,然后j+1位置的元素,会变成j位置的元素,而j位置已经比较过了,不会重复比较,所以会出现漏比较的情况
       解决办法:当删除一个元素后,需要将该位置的元素再比较一遍
      */
      j--;
    }
  }
}
console.log(arr);

简便方法:

const arr = [1,2,1,3,2,2,4,5,5,6,7];
// 分别获取数组中的元素
for(let i = 0; i < arr.length; i++) {
  const index = arr.indexOf(arr[i], i+1);
  if(index !== -1){
    // 出现重复内容
    arr.splice(index, 1);
    i--;
  }
}
console.log(arr);

不破坏原数组的简便方法:

const arr = [1,2,1,3,2,2,4,5,5,6,7];
const newArr = [];
// 分别获取数组中的元素
for(let ele of arr) {
  if(newArr.indexOf(ele) === -1){
    newArr.push(ele);
  }
}
console.log(newArr);

标签:arr,JavaScript,const,newArr,元素,笔记,实例,let,数组
From: https://www.cnblogs.com/zibocoder/p/17064833.html

相关文章

  • 动力节点javaSE笔记
    目录调用方法:类名.方法名(其中在一个类中调用,类名可以省略)方法重载条件:面向对象三大特征:类--->[实例化]--->对象(实例)对象--->[抽象]--->类方法体内的变量是局部变......
  • JavaScript学习笔记—复制
    9.复制(1)浅拷贝(shallowcopy)通常对对象的拷贝都是浅拷贝只对对象的浅层进行复制(只复制一层)如果对象中存储的数据是原始值,那么拷贝的深浅是不重要浅拷贝只会对对象本......
  • 学习笔记——SSM整合(思路、步骤)
    2023-01-22一、SSM整合1、Spring+SpringMVC(1)容器管理对象,由DispatcherServlet管理(2)Spring容器对象,由ContextLoaderListener管理2、解决组件扫描的冲突问题(1)SpringM......
  • JavaScript 跨域问题
    一、什么是跨域跨域(Cross-originresourcesharing,CORS)是指在浏览器中,同源策略限制了来自不同域的脚本对每个网络资源的访问权限。同源策略限制了一个网页脚本只能......
  • JavaScript学习笔记—数组的方法
    1.非破坏性方法(1)Array.isArray():用来检查一个对象是否是数组console.log(Array.isArray([1,2,3,4]));//trueconsole.log(Array.isArray({name:"孙悟空"}));//fals......
  • 编译snowboy 笔记
    1.安装依赖sudoapt-getinstallpulseaudiosoxpython3-pyaudioswiglibatlas-base-devpython3-dev2.获取源代码gitclonehttps://github.com/Kitt-AI/snowboy.git......
  • 《RPC实战与核心原理》学习笔记Day5
    06|RPC实战:剖析gRPC源码,动手实现一个完整的RPC我们通过动态代理技术,屏蔽RPC调用的细节,从而让使用者能够面向接口编程。什么是gRPC?gRPC是由Google开发并且开源的一款......
  • JavaScript对象的创建方式有几种?怎么用?
    JavaScript对象的创建方式有几种?怎么用?对象是JavaScript的基本数据类型,对象不仅是字符串到值的映射还保持自有属性,JavaScript对象可以从一个称为原型的对象继承属性,对象的方......
  • AC 自动机学习笔记
    前置知识:KMP,trie。一.自动机这里的自动机都指有限状态自动机(DFA)。一个DFA可以理解为一张有向图,由有限的状态(点),字母表,转移函数(边),开始状态与终止状态(起点,终点)组成。AC......
  • 学习笔记——SpringMVC拦截器的两种装配方式;SpringMVC拦截器工作原理;SpringMVC中的异
    2023-01-22 一、SpringMVC拦截器的两种装配方式1、全局装配(放置在springmvc.xml中)<!--装配拦截器--><!--全局装配--><mvc:interceptors><ref......