广告
返回顶部
首页 > 资讯 > 精选 >JavaScript怎么找出数组中的重复或非重复元素
  • 881
分享到

JavaScript怎么找出数组中的重复或非重复元素

2023-06-29 01:06:55 881人浏览 泡泡鱼
摘要

本文小编为大家详细介绍“javascript怎么找出数组中的重复或非重复元素”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript怎么找出数组中的重复或非重复元素”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习

本文小编为大家详细介绍“javascript怎么找出数组中的重复或非重复元素”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript怎么找出数组中的重复或非重复元素”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

一、出数组中的重复元素或非重复元素

双重循环 + slice,找出重复的元素。虽然只要求找出重复元素,但应该注意要顺便去重,否则外循环还是会对重复元素进行一遍检查;用 flag 记录重复次数,只在第一次重复的时候将元素放入新数组

function search(arr){    let res = []    let flag = 0    for(let i = 0;i < arr.length;i++){        for(let j = i+1;j<arr.length;j++){            if(arr[i] === arr[j]){                flag++                if(flag == 1) res.push(arr[i])                arr.splice(j,1)            }            }        flag = 0    }    return res}

map + filter,记录每个元素出现的次数。有了重复次数,就可以筛选出重复元素、重复次数最多元素或者非重复元素:

function search(arr){    const map = new Map()    for(item of arr){        if(!map.has(item)){            map.set(item,1)        } else {            map.set(item,map.get(item)+1)        }    }    // 找出重复元素,即出现次数大于1    return [...map.entries()].filter(item => item[1] > 1).map(item => item[0])    // 找出非重复元素,即出现次数等于1    return [...map.entries()].filter(item => item[1] == 1).map(item => item[0])    // 找出重复次数最多的元素    return [...map.entries()]        .filter(item => item[1] == Math.max(...map.values()))        .map(item => item[0])}

二、数组扁平化 / 数组降维

二维数组,以[[],[{a:1}],[],[3,4],5] 为例,降维后得到[{a:1},3,4,5]

二维数组:双重循环

需要检查是否每个元素都是数组

function flatten(arr){    const res = []    for(let i = 0;i < arr.length; i++){        if(Array.isArray(arr[i])){            for(let j = 0;j < arr[i].length;j++){                res.push(arr[i][j])            }                    } else {            res.push(arr[i])        }          }    return res}

二维数组:循环 + concat

concat 本身就可以给数组降维一次

function reduceDiemension(arr){    const res = []    for(let i = 0;i < arr.length;i++){        res = res.concat(arr[i])    }    return res}

二维数组:reduce + concat

上面的过程本身是一种归并,所以考虑使用 reduce

function flatten(arr){    return arr.reduce((acc,cur) => acc.concat(cur),[])}

二维数组:展开 / apply + concat

通过展开原数组或者将其作为 apply 的第二个参数,把数组转化为一个参数列表

function flatten(arr){    // return [].concat([],arr)    return [].concat(...arr)}

多维数组,以下面的数组为例:

const arr = [
    1,
    [
        2,[3],
        [4,5,6],
        [7,8,9],
        10,11
    ],
    12,
    13,
    [15,16,17]
]

降维后得到 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17]

多维数组:toString + split

数组降维可以看作是把所有的括弧都去掉,而数组的 toString 方法刚好可以做这个事,之后再调用字符串的 split 把字符串转换回数组即可。但这个方法很局限,要求数组元素的数据类型都相同。

function flattern_numberArray(arr){    return arr.toString().split(",").map(x => Number)}

多维数组:forEach + 递归

function flatten(arr){    const res = []    arr.forEach(item => {        if(Array.isArray(item)){            flatten(item)        } else {            res.push(item)        }    })    return res}

多维数组:reduce + 递归

同理,上面的过程是一种归并,可以使用 reduce 完成。需要注意的是,reduce 的回调函数必须返回一个数组,所以不要再用 push

function flatten(arr){    return arr.reduce((acc,cur) => {        if(Array.isArray(cur)){            return [...acc , ...flatten(cur)]            } else {            return [...acc,cur]        }    },[])}

多维数组:while + some

只要数组中还有数组,就使用 concat 给这个数组降维。这个方法可以不使用递归

function flatten(arr){        while(arr.some(item => Array.isArray(item))){        arr = [].concat(...arr)    }    return arr}

不确定维数的数组: flat

数组降维,直接用之前讲过的 flat 是最简单的。默认传参 1,表示降维一次;可以传参 Infinity,实现完全降维,最终得到一个一维数组。

读到这里,这篇“JavaScript怎么找出数组中的重复或非重复元素”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

本文标题: JavaScript怎么找出数组中的重复或非重复元素

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

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

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

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

下载Word文档
猜你喜欢
  • JavaScript怎么找出数组中的重复或非重复元素
    本文小编为大家详细介绍“JavaScript怎么找出数组中的重复或非重复元素”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript怎么找出数组中的重复或非重复元素”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习...
    99+
    2023-06-29
  • python列表怎么找出重复元素
    可以使用python中的集合(set)来找出列表中的重复元素。集合是一种无序且不重复的数据结构,所以将列表转换为集合后,再将集合转换...
    99+
    2023-09-29
    python
  • JS如何查找数组中重复元素
    小编给大家分享一下JS如何查找数组中重复元素,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体如下:JS的数据类型有一个数组。今...
    99+
    2022-10-19
  • JavaScript 中怎么实现数组去重并统计重复元素出现的次数
    这篇文章将为大家详细讲解有关JavaScript 中怎么实现数组去重并统计重复元素出现的次数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、方法一var&...
    99+
    2022-10-19
  • php如何查找数组中不重复的元素
    本篇内容主要讲解“php如何查找数组中不重复的元素”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php如何查找数组中不重复的元素”吧!方法:1、用array_count_values()统计元素...
    99+
    2023-06-30
  • python怎么删除数组中重复的元素
    可以通过使用set()函数或者使用列表推导式来删除数组中的重复元素。方法一:使用set()函数```pythona = [1, 2,...
    99+
    2023-08-19
    python
  • PHP数组中的重复元素怎么删除
    这篇文章主要介绍“PHP数组中的重复元素怎么删除”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“PHP数组中的重复元素怎么删除”文章能帮助大家解决问题。一、使用array_unique()函数去重PH...
    99+
    2023-07-06
  • Java中怎么删除数组中的重复元素
    这篇文章将为大家详细讲解有关Java中怎么删除数组中的重复元素,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。问题:比如我有一个数组(元素个数为0哈),希望添加进去元素不能重复。拿到这样一个问...
    99+
    2023-06-17
  • c语言怎么找出数组中重复的数字
    可以使用两种方法来找出数组中重复的数字。 方法一:使用“哈希表” 创建一个哈希表,用于记录每个数字出现的次数。 遍历数组,将数组中...
    99+
    2023-10-26
    c语言
  • php删除数组中的重复元素
    PHP是一种强大的Web开发语言,它提供了许多数组函数来处理数据。当我们需要从一个数组中删除重复的元素时,可以使用PHP的一些内置函数来轻松地完成这个任务。本文将介绍如何使用PHP内置函数删除数组中的重复元素。使用array_unique(...
    99+
    2023-05-19
  • JavaScript中怎么去掉array重复元素
    JavaScript中怎么去掉array重复元素,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Filterfilter是一个常用的操作,它...
    99+
    2022-10-19
  • sql怎么找出重复的数据
    要找出重复的数据,可以使用SQL语句中的GROUP BY和HAVING子句。 下面是一个示例,假设有一个名为employee...
    99+
    2023-10-22
    sql
  • php中怎么找出数组中重复率最高的值
    php中怎么找出数组中重复率最高的值,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。我们来看看下面一个例子。<phpheader("Content...
    99+
    2023-06-20
  • php中两个数组怎么去掉重复的元素
    本文操作环境:windows7系统、PHP7.1版、Dell G3电脑。php中两个数组怎么去掉重复的元素?PHP删除两个数组中相同的元素:代码如下:<php $invite1 = '18,19,20,21,22';...
    99+
    2015-02-20
    php
  • Python不修改数组怎么找出重复的数字
    这篇“Python不修改数组怎么找出重复的数字”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python不修改数组怎么找出重...
    99+
    2023-06-30
  • php怎么获得数组中不重复元素的个数
    实现步骤:1、用array_count_values()统计元素出现次数,返回一个关联数组;2、遍历关联数组,判断值是否为1,如果为1则取出对应键名,并将其赋值给一个空数组,语法“foreach(关联数组 as $k=>$v){if(...
    99+
    2022-09-13
  • php数组怎么去除重复和空元素
    实现步骤:1、使用array_unique()函数去除原数组中的重复元素,语法“array_unique(原数组)”,会返回一个去重数组;2、使用array_filter()函数过滤去重数组,删除去重数组中的空元素即可,语法“array_f...
    99+
    2022-06-28
    php php数组
  • 怎么实现PHP删除数组重复元素
    这篇文章主要为大家展示了“怎么实现PHP删除数组重复元素”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么实现PHP删除数组重复元素”这篇文章吧。我们在实际操作PHP代码的过程中,经常会遇到数组...
    99+
    2023-06-17
  • java怎么判断数组元素是否重复
    Java中判断数组元素是否重复可以使用以下方法:1. 使用两层循环遍历数组,比较每对元素是否相同。如果找到相同的元素,则数组中存在重...
    99+
    2023-09-22
    java
  • java如何找出数组中的不重复数字
    找出数组中不重复的一个数字,题目大致是这样的:int[] a = { 1, 2, 3, 4, 3, 2, 1 };在线视频教程推荐:java在线学习解决办法是:public static int getNoRepeat() { int[]...
    99+
    2018-07-23
    java 数组 不重复 数字
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作