资讯专栏INFORMATION COLUMN

js数组的扁平化

jemygraw / 1589人阅读

摘要:数组扁平化方法递归循环数组元素,如果还是一个数组,就递归调用该方法注意和方法的返回值不同方法使用来简化方法的代码方法方法转成字符串方法把字符串切割成数组字符串拼接方法方法则当其中一个返回,则最终结果为,相当于逻辑运算符。

数组扁平化
const a = [[1], [3, [4, 5, [6, 7]]], [8], [9, [2, 10]]]
方法1:递归

循环数组元素,如果还是一个数组,就递归调用该方法

function flatten1(arr){
    let res = [];
    for(var i=0;i
方法2:

使用reduce来简化方法1的代码:

function flatten2(arr){
    return arr.reduce((prev, cur) => prev.concat(Array.isArray(cur) ? flatten2(cur) : cur),[])   
}
方法3:

toString方法转成字符串,split方法把字符串切割成数组,字符串拼接方法

function flatten3(arr){
    return arr.toString().split(",").map(item=> +item)
}
方法4:

some则当其中一个返回true,则最终结果为true, 相当于逻辑运算符||。

function flatten4(arr){
    while(arr.some(item => Array.isArray(item))){
        arr = [].concat(...arr);
    }
    return arr;
}
方法5:

every方法表示当数组每个元素在判定函数中都返回true,则最终结果为true,相当于逻辑运算符 &&

function flatten5(arr) {
    while (!arr.every(item => typeof item === "number" && !isNaN(item))) {
        arr = [].concat(...arr);
        console.log(arr);
    }
    return arr;
}
console.log(...a)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/99016.html

相关文章

  • JS数组平化去并除其中重复部分数据,最终得到一个升序且不重复数组

    摘要:题目已知如下数组编写一个程序将数组扁平化去并除其中重复部分数据,最终得到一个升序且不重复的数组实现数组扁平化去重排序解析数组扁平化判断数组子元素是否为数组是的话进行递归否则把子元素变为数组的执行结果为的执行结果为数组去重通过实现 题目: 已知如下数组:var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, ...

    godruoyi 评论0 收藏0
  • JS数组专题1️⃣ ➖ 数组平化

    一、什么是数组扁平化 扁平化,顾名思义就是减少复杂性装饰,使其事物本身更简洁、简单,突出主题。 数组扁平化,对着上面意思套也知道了,就是将一个复杂的嵌套多层的数组,一层一层的转化为层级较少或者只有一层的数组。 Ps: flatten 可以使数组扁平化,效果就会如下: const arr = [1, [2, [3, 4]]]; console.log(flatten(arr)); // [1, ...

    lieeps 评论0 收藏0
  • 展示JS前端面试数组平化手写flat函数

      我们现在来说说怎么写一下数组扁平化flat(),怎么样?简单说题目就是数组扁平化(也可以叫做手动封装flat()方法),如何写好那?  按照不同的星级进行打分: 五星打分制  满分: ⭐⭐⭐⭐⭐  题目实现扁平化的方法 封装 flatten  题目描述:  有多级嵌套数组 :[1, [2, [3, [4, 5]]], 6]将其扁平化处理 输出:[1,2,3,4,5,6]  什么是扁平化  定义...

    3403771864 评论0 收藏0
  • JS专题之数组展开

    摘要:根据需求的特点,数组展开需要进行迭代和递归。回答文章开头的问题将多重数组转化成单层数组的过程就是数组展开,也叫作数组扁平化一循环加递归最简单的思路循环中判断,如果子元素是数组则递归。 前言 首先什么是数组展开? 假如现在有这样一个需求:将后台的一个多重 List 数据,展开成一个 List 后,并去重后排序; [a, b, [c, d], [[d],e], f] => [a, b, ...

    boredream 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<