前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >数组扁平化

数组扁平化

作者头像
hss
发布于 2022-02-25 12:06:53
发布于 2022-02-25 12:06:53
53400
代码可运行
举报
文章被收录于专栏:前端卡卡西前端卡卡西
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script>
    // 数组扁平化,去重,升序
    // 方法1,使用es6中的flat()方法扁平化数组,然后new Set去重,最后sort排序
    let arr = [1, 3, 2, [4, 5, 7, [6, 7, 8, [9, 1, 3]]]]
    arr = arr.flat(Infinity)
    arr = [...new Set(arr)]
    // arr = Array.from(arr)
    // arr = [...arr]
    arr.sort((a, b) => {
        return a - b
    })
    console.log(arr);

    // 方法2,使用toString()方法将数组转化为字符串,再使用splice()方法,最后map()方法,扁平化数组,然后new Set去重,最后sort排序
    let arr1 = [1, 3, 2, [4, 5, 7, [6, 7, 8, [9, 1, 3]]]]
    arr1 = arr1.toString().split(',').map(item => {
        return Number(item)
    })
    arr1 = [...new Set(arr1)]
    // arr1 = Array.from(arr1)
    // arr1 = [...arr1]
    arr1.sort((a, b) => {
        return a - b
    })
    console.log(arr1);

    // 方法3,利用JSON.stringify,然后正则替换[]
    let arr2 = [1, 3, 2, [4, 5, 7, [6, 7, 8, [9, 1, 3]]]]
    arr2 = JSON.stringify(arr2).replace(/(\[|\])/g, '').split(',').map(item => {
        return Number(item)
    })
    arr2 = [...new Set(arr2)]
    arr2.sort((a, b) => {
        return a - b
    })
    console.log(arr2);
</script>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/05/07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
精学手撕系列——数组扁平化
在前端面试中,手写flat是非常基础的面试题,通常出现在笔试或者第一轮面试中,主要考察面试者基本的手写代码能力和JavaScript的基本功。
胡哥有话说
2020/11/03
9310
已知如下数组: var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];
var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];
刘嘿哈
2022/10/25
4550
嵌套数组的合并,扁平化数组
对于 [ [], [], [], ...] 数组里嵌套数组,有个需求:将里面的数组元素都放到外层数组,变成 , , , ...
Krry
2018/10/12
2.3K0
嵌套数组的合并,扁平化数组
JS数组操作
当前字符串中包含字母和数字, 用一个方法实现出现最多的字母和数字 a)如果只有字母, 那么只返回出现最多的字母, 只有数字情况同理 b)如果有相同次数多的字母或数字出现,将按照第一次出现的顺序返回 列表如下:
epoos
2022/06/06
8.9K0
22个超详细的 JS 数组方法
https://juejin.cn/post/6907109642917117965
前端达人
2021/01/27
3.8K0
收藏好了,JS开发须知道的41个小技巧
链接:https://juejin.im/post/6854573212890562573
coder_koala
2020/11/10
5700
收藏好了,JS开发须知道的41个小技巧
前端学习(40)~js学习(十七):数组的常见方法&数组的遍历
unshift():在数组最前面插入一个或多个元素,返回结果为该数组新的长度。插入元素后,其他元素的索引会依次调整。
Vincent-yuan
2020/03/19
1.9K0
JS开发必须知道的41个技巧【持续更新】
JS是前端的核心,但有些使用技巧你还不一定知道; 本文梳理了JS的41个技巧,帮助大家提高JS的使用技巧; 文章有点长,可以clone下源码,直接撸,源码地址请戳全部源码,原创不易,欢迎star; 序列文章: Vue 开发必须知道的 36 个技巧 React 开发必须知道的 34 个技巧
火狼1
2020/07/21
8440
JS数组相关问题的解决方法
语法:var newArray = arr.flat(depth),参数说明:depth,可选,指定嵌套数组中的结构深度,默认值为1
愤怒的小鸟
2021/01/14
9280
自定义工具函数库(二) 数组相关
循环,数组的每个元素都调用一次函数,并把每次循环得到的返回值都存好,循环结束后,把存好的数组返回。
赤蓝紫
2023/03/11
5990
如何用JavaScript实现数组扁平化
🧐 什么是数组扁平化 将嵌套多层的数组“拉平”,变为一维数组。 🤔 为什么要数组扁平化 去除冗余,厚重和繁杂的装饰效果。 😎 如何进行数组扁平化 方法一:递归实现 思路就是通过循环递归的方式,一项一项的去遍历,如果每一项还是一个数组,那么就继续往下遍历,利用递归程序的方法,来实现数组每一项的连接 let arr=[1,[2,[3,4,5]]]; function flatten(arr){ let result=[]; for(let i=0;i<arr.length;i++){ if(Arr
henu_Newxc03
2022/05/05
5790
编程篇(009)-js 数组拍平(数组扁平化)的六种方式
1. 数组拍平也称数组扁平化,就是将数组里面的数组打开,最后合并为一个数组 2. 实现
齐丶先丶森
2022/05/12
8220
常见的数组基本用法
ES5方法:pop push shift unshift reverse sort splice
前端迷
2021/04/09
9490
JS中的数组方法
注:箭头函数中无法改变this指向,因此如果想用thisValue参数必须使用function函数
我不是费圆
2020/09/21
6.5K0
面试官:怎样实现JS数组扁平化?
toString 可以将多维数组转变成字符串,在通过 split 转换成数组,此时每个元素都为字符串,但需注意的是 此时每个数组元素都为字符串,可以用Number进行转换。
前端老道
2022/12/01
1.4K0
js字符串/数组常用方法总结
str.charAt(index); 从一个字符串中获取索引为index的字符。
Daotin
2020/09/06
3.3K0
Js数组操作
JavaScript数组操作,主要包括Array对象原型方法以及常用操作如去重、扁平化、排序等。
WindRunnerMax
2020/08/27
17.4K0
ES6中数组做了哪些新扩展?
ES6通过扩展元素符...,好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列
用户6256742
2024/07/15
1080
ES6中数组新增扩展盘点
ES6通过扩展元素符...,好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列
@超人
2021/07/05
5760
ES6中数组新增扩展盘点
JS数组扁平化_扁平化js
数组是 JS 中使用频率仅次于对象的数据结构,官方提供了众多的 API,谈谈如何扁平化(flatten)数组。
全栈程序员站长
2022/08/04
1.3K0
相关推荐
精学手撕系列——数组扁平化
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验