广告
返回顶部
首页 > 资讯 > 精选 >js数组去重怎么实现
  • 560
分享到

js数组去重怎么实现

2023-07-02 16:07:23 560人浏览 薄情痞子
摘要

这篇文章主要介绍“js数组去重怎么实现”,在日常操作中,相信很多人在js数组去重怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”js数组去重怎么实现”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!方法

这篇文章主要介绍“js数组去重怎么实现”,在日常操作中,相信很多人在js数组去重怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”js数组去重怎么实现”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

方法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++){        // 设置一个开关,如果是true,就存进去,不是就不存        let  flag = true        for(let j = 0;j<newArr.length;j++){          // 原数组和新数组作比较,如果一致,开关变为 false          arr[i] === newArr[j] ? flag = false : flag        };        flag ? newArr.push(arr[i]) : newArr      };      return newArr    }    console.log(newArrFn(arr));

方法2、for循环 +findIndex

主要利用findIndex 的特性,查找元素找不到就返回-1, 接下来就需要判断,如果是-1,说明没找到,就往新数组里面添加元素。

var arr = [1, 2, 3,4 ,5,6, 4, 3, 8, 1]    // 数组去重:    // 方法2: for + indexof    function newArrFn (arr) {      let newArr = []      for(let i = 0;i<arr.length;i++){        newArr.indexOf(arr[i]) === -1 ? newArr.push(arr[i]) : newArr      };      return newArr    }    console.log(newArrFn(arr));

方法3、sort 排序

首先利用 sort 方法进行排序。进行循环,如果原数组的第 i 项和新数组的 i - 1 项不一致,就push进去。

var arr = [1, 2, 3,4 ,5,6, 4, 3, 8, 1]    // 数组去重:    // 方法3: for + sort    function newArrFn (arr) {      arr = arr.sort()      let newArr = []      for(let i = 0;i<arr.length;i++){        arr[i] === arr[i-1] ? newArr : newArr.push(arr[i])      };      return newArr    }    console.log(newArrFn(arr));

方法4、Set

es6中新增了数据类型Set,Set的一个最大的特点就是数据不重复。Set函数可以接受一个数组(或类数组对象)作为参数来初始化,利用该特性也能做到给数组去重。

var arr = [1, 2, 3,4 ,5,6, 4, 3, 8, 1]    // 数组去重:    // 方法4: set    function newArrFn (arr) {      // .new Set方法,返回是一个类数组,需要结合 ...运算符,转成真实数组      return ([...new Set(arr)])    }    console.log(newArrFn(arr));

方法5、set + Array.from

利用 set数据不重复的特点,结合 Array.from

var arr = [1, 2, 3,4 ,5,6, 4, 3, 8, 1]    // 数组去重:    // 方法5: set + Array.from    function newArrFn (arr) {      // .new Set方法,返回是一个类数组,需要结合 Array.from ,转成真实数组      return (Array.from(new Set(arr)) )    }    console.log(newArrFn(arr));

方法6、filter + indexOf

indexOf,可以检测某一个元素在数组中出现的位置,找到返回该元素的下标,没找到返回 -1

var arr = [1, 2, 3,4 ,5,6, 4, 3, 8, 1]    // 数组去重:    // 方法6 :filter + findIndex    function newArrFn (arr) {      // 利用indexOf检测元素在数组中第一次出现的位置是否和元素现在的位置相等,      // 如果相等,说明数组中没有重复的      return Array.prototype.filter.call(arr, function (item, index) {         return arr.indexOf(item) === index       })    }    console.log(newArrFn(arr));

方法7、includes

利用 includes 检查新数组是否包含原数组的每一项。 如果不包含,就push进去

var arr = [1, 2, 3,4 ,5,6, 4, 3, 8, 1]    // 数组去重:    // 方法7 :for + includes    function newArrFn (arr) {      // 利用includes 检查新数组是否包含原数组的每一项      // 如果不包含,就push进去      let newArr = []      for(let i = 0;i<arr.length;i++){        newArr.includes(arr[i]) ? newArr:  newArr.push(arr[i])       };      return newArr    }    console.log(newArrFn(arr));

方法 8、 for + object

利用对象属性名不能重复这一特点。如果对象中不存在,就可以给 push 进去

var arr = [1, 2, 3,4 ,5,6, 4, 3, 8, 1]    // 数组去重:    // 方法8 :for + obj    function newArrFn (arr) {      // 利用对象属性名不能重复这一特点      // 如果对象中不存在,就可以给 push 进去      let newArr = []      let obj = {}      for(let i = 0;i<arr.length;i++){        if (!obj[arr[i]]) {          newArr.push(arr[i])          obj[arr[i]] = 1        } else {          obj[arr[i]] ++        }      };      return newArr    }    console.log(newArrFn(arr));

方法9、for + splice

利用 splice 进行切割

var arr = [1, 2, 3,4 ,5,6, 4, 3, 8, 1]    // 数组去重:    // 方法8 :for + splice    // 利用 splice 进行切割。    function newArrFn (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    }    console.log(newArrFn(arr));

方法10、filter + indexOf

利用 filter 过滤 配合 indexOf 查找元素

var arr = [1, 2, 3,4 ,5,6, 4, 3, 8, 1]    // 数组去重:    // 方法10 :filter + indexOf    // filter 过滤 配合 indexOf 查找元素    function newArrFn (arr) {      return arr.filter((item, index) => {        return arr.indexOf(item) === index      })    }    console.log(newArrFn(arr));

方法11、Map

利用数据结构存值的特点

var arr = [1, 2, 3,4 ,5,6, 4, 3, 8, 1]    // 数组去重:    // 方法11 :Map    function newArrFn (arr) {      let newArr = []      let map = new Map()      for(let i = 0;i<arr.length;i++){        // 如果 map里面不包含,就设置进去        if (!map.has(arr[i])) {          map.set(arr[i], true)          newArr.push(arr[i])        }      };      return newArr    }    console.log(newArrFn(arr));

方法12:reduce

var arr = [1, 2, 3,4 ,5,6, 4, 3, 8, 1]    // 数组去重:    // 方法12 :reduce    function newArrFn (arr) {      let newArr = []      return  arr.reduce((prev, next,index, arr) => {        // 如果包含,就返回原数据,不包含,就把新数据追加进去         return newArr.includes(next) ? newArr :  newArr.push(next)      }, 0)    }    console.log(newArrFn(arr));

到此,关于“js数组去重怎么实现”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: js数组去重怎么实现

本文链接: https://www.lsjlt.com/news/343010.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • js数组去重怎么实现
    这篇文章主要介绍“js数组去重怎么实现”,在日常操作中,相信很多人在js数组去重怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”js数组去重怎么实现”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!方法...
    99+
    2023-07-02
  • js数组怎么去重
    js数组去重的方法:1、ES6提供的“new Set()”方法;2、“filter()”方法;3、使用for循环,搭配“indexOf()”方法;4、将数组的每一个元素依次与其他元素比较,有重复元素就删除;5、创建新的空数组,使用“inde...
    99+
    2023-07-10
  • JS中如何实现数组去重
    这篇文章主要介绍JS中如何实现数组去重,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!操作的数组 let arr=[0,1,23,'1',4,2,8...
    99+
    2022-10-19
  • 如何使用JS实现数组去重
    这篇文章主要介绍如何使用JS实现数组去重,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体如下:var arr = ['abc',...
    99+
    2022-10-19
  • JS如何实现数组去重复值
    这篇文章主要介绍JS如何实现数组去重复值,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!运行效果图如下:完整实例代码如下:<!DOCTYPE html PUB...
    99+
    2022-10-19
  • php怎么实现数组去重
    本文操作环境:windows7系统、PHP7.1版、DELL G3电脑php 数组元素快速去重1.使用array_unique方法进行去重对数组元素进行去重,我们一般会使用array_unique方法,使用这个方法可以把数组中的元素去重。&...
    99+
    2019-10-11
    php
  • JavaScript怎么实现数组去重
    这篇“JavaScript怎么实现数组去重”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“JavaScript怎么实现数组去重”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接...
    99+
    2023-06-06
  • 七种JS实现数组去重的方式
    目录1.利用Set()+Array.from() 2.利用两层循环+数组的splice方法 3.利用数组的indexOf方法 4.利用数组的includes方法 5.利用数组的fil...
    99+
    2022-11-12
  • JS数组去重详情
    目录1 测试用例2 JS 数组去重4大类型2.1 元素比较型2.1.1 双层 for 循环逐一比较(es5常用)2.1.2 排序相邻比较2.2 查找元素位置型2.2.1 indexO...
    99+
    2022-11-12
  • js数组如何去重
    小编给大家分享一下js数组如何去重,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在实际工作或面试中,我们经常会遇到“数组去重”问题,接下来就是使用js实现的数组去...
    99+
    2023-06-14
  • JavaScript中怎么实现数组去重
    这篇文章主要介绍了JavaScript中怎么实现数组去重,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体如下:数组去重,一般都是在面试的时...
    99+
    2022-10-19
  • JS实现数组去重的方法有哪些
    这篇文章主要介绍了JS实现数组去重的方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JS实现数组去重的方法有哪些文章都会有所收获,下面我们一起来看看吧。1.ES5常用:利用for嵌套for,然后spli...
    99+
    2023-06-29
  • Javascript怎样实现数组去重
    这篇文章将为大家详细讲解有关Javascript怎样实现数组去重,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。数组去重1、from()叠加new Set()方法字符串或数值型数组的去重可以直接使用from...
    99+
    2023-06-17
  • js中如何实现两数组去除重复数值
    这篇文章主要介绍js中如何实现两数组去除重复数值,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!实例如下://两数组去除重复数值 mergeArray: function(a...
    99+
    2022-10-19
  • JS实现数组去重的11种方法总结
    目录1.ES5常用:利用for嵌套for,然后splice去重2.ES6常用:Set去重3.indexOf去重4.sort()排序5.对象属性不能相同(不建议)6.includes(...
    99+
    2022-11-13
  • es5和es6怎么实现数组去重
    本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。es5 数组去重indexOf 方法使用indexOf(可返回某个指定的字符串值在字符串中首次出现的位置,如果首次出现,返回-1) var arr = [...
    99+
    2023-05-14
    es5 ES6 数组去重
  • php不用函数怎么实现数组去重
    实现步骤:1、定义2个空数组,用于存储两次反转的键和值;2、用foreach语句遍历原数组,将原数组键和值赋给一个空数组作值和键,语法“foreach($arr as $k1=>$v1){$r1[$v1]=$k1;}”;3、用fore...
    99+
    2022-09-21
  • golang怎么利用map实现数组去重
    这篇文章主要讲解了“golang怎么利用map实现数组去重”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“golang怎么利用map实现数组去重”吧!golang数组去重利用map可以利用go...
    99+
    2023-06-30
  • 七种JS实现数组去重的方式分别是什么
    这篇文章将为大家详细讲解有关七种JS实现数组去重的方式分别是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。例:将下面数组去除重复元素(以多种数据类型为例)const arr&n...
    99+
    2023-06-22
  • js数组去重的11种方法
    在实际工作或面试中,我们经常会遇到“数组去重”问题,接下来就是使用js实现的数组去重的多种方法: 1.将数组的每一个元素依次与其他元素做比较,发现重复元素,删除 var arr ...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作