美文网首页
【JS编程系列】数组扁平化

【JS编程系列】数组扁平化

作者: 前端葱叶 | 来源:发表于2021-10-30 00:16 被阅读0次

一、题目

题目:将以下数组扁平化,返回一个没有重复值且升序的数组

例子:

//输入:
 let arr = [
        [1, 2, 3],
        [3, 4, 5, 5],
        [6, 7, 8, 9, [11, 12, [12, 13]]],
      ];
 //输出:[1,2,3,4,5,6,7,8,9,11,12,13] 
 

二、解决方案

思路:1、先将数组扁平化;2、去重;3、排序

方法一:原生属性写法

 function flatten(arr) {
        let result = [];
        let len = arr.length;
        for (let i = 0; i < len; i++) {
          if (Array.isArray(arr[i])) {
            // concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
            result = result.concat(flatten2(arr[i]));
          } else {
            result.push(arr[i]);
          }
        }
        return Array.from(new Set(result));
      }

方法二:使用ES6的flat+new Set

function flatten(arr) {
        return Array.from(new Set(arr.flat(Infinity))).sort((a, b) => {
          return a - b;
        });
      }

相关文章

  • 【JS编程系列】数组扁平化

    一、题目 题目:将以下数组扁平化,返回一个没有重复值且升序的数组 例子: 二、解决方案 思路:1、先将数组扁平化;...

  • js实现数组扁平化

    js实现数组扁平化 数组的扁平化,就是将一个嵌套多层的数组array(嵌套可以是任何层数)转换为只有一层的额数组。...

  • 每天一个lodash方法(5)

    Array method 系列之五 —— 数组扁平化:flatten && flattenDeep && flat...

  • js数组与对象常用操作方法

    一、Js相关数组操作 数组去除相同的 数组添加数数据 数组反转 打乱数组排序 取数组的前几个 数组扁平化 遍历对象...

  • 封装常用数组操作函数

    1. 数组扁平化 方法一 : 递归迭代数组 方法二 : 通过js原生 falt方法展开数组 方法三 通过正则...

  • JavaScript八张思维导图

    目录 JS基本概念 JS操作符 JS基本语句 JS数组用法 Date用法 JS字符串用法 JS编程风格 JS编程实...

  • 温故而知新,8张 Javascript 思维导图助你成长

    目录 JS基本概念 JS操作符 JS基本语句 JS数组用法 Date用法 JS字符串用法 JS编程风格 JS编程实...

  • js数组扁平化

    扁平化 数组的扁平化,就是将一个嵌套多层的数组 array (嵌套可以是任何层数)转换为只有一层的数组。 递归 e...

  • js数组扁平化

    1、 利用apply和concat转换 2、reduce 3、多维数组递归降维

  • js数组扁平化

    现在有一个需求: 多维数组=>一维数组; var arr = [1,2,[3,4,[5,6,[7,8]]],[9,...

网友评论

      本文标题:【JS编程系列】数组扁平化

      本文链接:https://www.haomeiwen.com/subject/uzowaltx.html