广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >解数组去重和数组扁平化的方法有哪些
  • 493
分享到

解数组去重和数组扁平化的方法有哪些

2024-04-02 19:04:59 493人浏览 薄情痞子
摘要

这篇文章主要介绍“解数组去重和数组扁平化的方法有哪些”,在日常操作中,相信很多人在解数组去重和数组扁平化的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”解数组去重和

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

数组去重

数组去重在面试中是一道基础题,但仍然可以在其中挖掘许多js知识。

ES6 最常用Set 去重

Set对象是值的集合,你可以按照插入的顺序迭代它的元素。 Set中的元素只会出现一次,即 Set 中的元素是唯一的。

function unique(arr) {     return Array.from(new Set(arr)) } let arr = [1, 1, 'true', 'true', true, true, 15, 15]; console.log(unique(arr))// [ 1, 'true', true, 15 ]  let unique2 = arr => [...new Set(arr)]  console.log(unique2(arr));// [ 1, 'true', true, 15 ]

双重for循环

外层循环元素,内层循环时比较值。

function unique(arr) {     for (var i = 0; i < arr.length; i++) {         for (var j = i + 1; j < arr.length; j++) {             if (arr[i] == arr[j]) {         //第一个等同于第二个,splice方法删除第二个                 arr.splice(j, 1);                 j--;             }         }     }     return arr; } let arr = [1, 1, 'true', 'true', true, true, 15, 15]; console.log(unique(arr))// [ 1, 'true', true, 15 ]

indexOf或includes去重

当数组内没有该元素时,indexOf返回-1,则把它push进新数组。

function unique(arr) {     var array = [];     for (var i = 0; i < arr.length; i++) {         if (array .indexOf(arr[i]) === -1) {             array .push(arr[i])         }     }     return array; }

includes() 方法用于判断字符串是否包含指定的子字符串。如果找到匹配的字符串则返回 true,否则返回 false。

function unique(arr) {     var array = [];     for (var i = 0; i < arr.length; i++) {         if (!array.includes( arr[i]) ) {             array .push(arr[i])         }     }     return array; }

filter去重

原始数组中元素的索引等于当前索引值时返回,否则返回当前元素

function unique(arr) {     var res = arr.filter(function(item, index, array) {         return array.indexOf(item) === index     })     return res }

数组扁平化

数组扁平化是指将一个多维数组变为一维数组。

flat方法

flat()方法创建一个新数组,其中所有子数组元素都以递归方式连接到该数组中,直到达到指定的深度为止

const arr1 = [1, 2, [3, 4, [5, 6]]]; arr1.flat(2); // [1, 2, 3, 4, 5, 6]  const arr2 = [1, 2, [3, 4, [5, 6, [7, 8, [9, 10]]]]]; arr2.flat(Infinity); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

ES6 拓展运算符

es6的扩展运算符能将二维数组变为一维,若arr中含有数组则使用一次扩展运算符,直至没有为止。

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

toString方法+split方法

调用数组的toString方法,将数组变为字符串然后再用split分割还原为数组。split分割后形成的数组的每一项值为字符串,所以需要用一个map方法遍历数组将其每一项转换为数值型。

function flatten(arr) {     console.log(arr.toString());// 1,2,3,4,5,6     console.log(arr.toString().split(',')); //[ '1', '2', '3', '4', '5', '6' ]     return arr.toString().split(',').map(function(item) {         return Number(item);     }) }  let ary = [1, [2, [3, [4, 5]]], 6]; console.log(flatten(ary)); // [ 1, 2, 3, 4, 5, 6 ]

使用join方法可以实现和toString方法类似的效果。

递归

递归的遍历每一项,当为数组时则继续,不为数组则concat。

function flatten(arr) {     var result = [];     for (var i = 0, len = arr.length; i < len; i++) {         if (Array.isArray(arr[i])) {             result = result.concat(flatten(arr[i]))         }         else {             result.push(arr[i])         }     }     return result; }

reduce方法实现

reduce方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。

function flatten(arr) {       return arr.reduce((result, item)=> {         return result.concat(Array.isArray(item) ? flatten(item) : item);     }, []); } let ary = [1, [2, [3, [4, 5]]], 6]; console.log(flatten(ary)); // [ 1, 2, 3, 4, 5, 6 ]

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

--结束END--

本文标题: 解数组去重和数组扁平化的方法有哪些

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

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

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

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

下载Word文档
猜你喜欢
  • 解数组去重和数组扁平化的方法有哪些
    这篇文章主要介绍“解数组去重和数组扁平化的方法有哪些”,在日常操作中,相信很多人在解数组去重和数组扁平化的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”解数组去重和...
    99+
    2022-10-19
  • JavaScript中数组扁平化的方法有哪些
    这篇文章将为大家详细讲解有关JavaScript中数组扁平化的方法有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。数组扁平化数组扁平化是指将一个多维数组变为一个一维数...
    99+
    2022-10-19
  • JavaScript数组去重和扁平化函数介绍
    目录1、数组扁平化(又称数组降维)方法一:使用 reduce 方法方法二:栈2、数组去重方式一:Set(ES6)方式二:reduce方法三:filter1、数组扁平化(又称数组降维)...
    99+
    2022-11-12
  • 怎么解析JavaScript数组去重和扁平化函数
    这篇文章将为大家详细讲解有关怎么解析JavaScript数组去重和扁平化函数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、数组扁平化(又称数组降维)flat() 方法会按照一个可指定的深...
    99+
    2023-06-22
  • JavaScript数组常用方法解析及数组扁平化
    目录前言一、常用数组操作方法push末尾追加元素pop删除数组末尾元素sort排序shift数组开头添加元素 && unshift数组开头删除元素数组合并concat...
    99+
    2022-11-13
  • javascript数组去重有哪些方法
    本篇内容介绍了“javascript数组去重有哪些方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!去重方...
    99+
    2022-10-19
  • javascript数组去重方法有哪些
    这篇文章给大家分享的是有关javascript数组去重方法有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 第一种--对象键值去重Array.prototype.u...
    99+
    2022-10-19
  • JavaScrip数组去重的方法有哪些
    这篇文章主要讲解了“JavaScrip数组去重的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScrip数组去重的方法有哪些”吧!本文实例...
    99+
    2022-10-19
  • ES6数组去重的方法有哪些
    这篇文章主要介绍“ES6数组去重的方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ES6数组去重的方法有哪些”文章能帮助大家解决问题。 ...
    99+
    2022-10-19
  • node数组去重的方法有哪些
    本文小编为大家详细介绍“node数组去重的方法有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“node数组去重的方法有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 ...
    99+
    2022-10-19
  • js数组去重的方法有哪些
    js数组去重的方法有使用Set、使用indexOf、使用includes、使用filter和使用reduce。1、使用Set,特点是集合中的元素不会重复;2、使用indexOf,可以返回指定元素在数组中的第一个索引位置;3、使用includ...
    99+
    2023-08-09
  • string数组去重的方法有哪些
    有以下几种方法可以去重一个字符串数组:1. 使用Set:将字符串数组转换为Set集合,由于Set集合不允许重复元素,所以重复的字符串...
    99+
    2023-08-15
    string
  • php数组去重的方法有哪些
    PHP数组去重的方法有以下几种:1. 使用array_unique函数:该函数可以去除数组中重复的值,并返回一个新的数组。```ph...
    99+
    2023-08-15
    php
  • JavaScript数组实现扁平化四种方法详解
    目录1. 常规递归法2. reduce方法3. 扩展运算符实现4. split和toString共同处理数组的扁平化就是将一个嵌套多层的数组 array(嵌套可以是任何层数)转换为只...
    99+
    2022-11-13
    JS数组扁平化 JS数组
  • JavaScript中数组去重的方法有哪些
    本篇内容介绍了“JavaScript中数组去重的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2022-10-19
  • JS实现数组扁平化的方法分享
    目录过程什么是扁平化方法一:flat方法二:递归前言 当我们遇到一个 树形结构的数据,或者 多层嵌套 的数组,如果想拿到数组项的 某一个 字段值,操作起来将会很麻烦,这个时候就需要我...
    99+
    2023-05-16
    JS实现数组扁平化 JS数组扁平化 JS数组
  • JS数组去重常用方法有哪些
    这篇文章主要介绍了JS数组去重常用方法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体如下:先对浏览器Array对象进行支持inde...
    99+
    2022-10-19
  • PHP数组去重的5种方法有哪些
    一、array_unique()函数 这是PHP自带的一个数组去重函数!我们可以用这个函数很方便地去除数组中的重复元素,但它并不会改变原数组的顺序。 二、array_flip()函数 array_flip()函数首先会将数...
    99+
    2023-10-29
    数组 种方法 有哪些
  • JS实现数组去重的方法有哪些
    这篇文章主要介绍了JS实现数组去重的方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JS实现数组去重的方法有哪些文章都会有所收获,下面我们一起来看看吧。1.ES5常用:利用for嵌套for,然后spli...
    99+
    2023-06-29
  • php数组元素去重的方法有哪些
    在PHP中,有几种方法可以对数组元素进行去重:1. 使用array_unique()函数:该函数会返回一个去重后的数组,保留数组中第...
    99+
    2023-08-16
    php
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作