美文网首页让前端飞
数组扁平化的实现方式

数组扁平化的实现方式

作者: Vicky丶Amor | 来源:发表于2019-03-21 17:28 被阅读0次

数组扁平化的实现方式

方法一

利用数组的 join() 转换成字符串,利用字符串的 split() 转换成数组
利用map 遍历数组,将每一项字符串类型转换成数字类型

var arr = [1,2,[3,4,5,[6,7],8,9],[10,11,[12,13]]];
var flatten = array=>array.join(',').split(',').map(item=>Number(item));
flatten(arr);

方法二

使用ES6 数组的reduce()方法结合数组的扩展运算符,reduce()里面是一个回调函数,
acc必选起始值, 若init 存在,则acc 为init值,current 必选,当前值;init,可选任意数据类型,0/[]/{}/''等等,数据类型取决于运算结果的类型

Array.reduce(function(acc,current){},init)

var arr = [1,2,[3,4,5,[6,7],8,9],[10,11,[12,13]]];
var flatten = array => array.reduce((acc, cur) =>
     Array.isArray(cur)? [...acc, ...flatten(cur)] : [...acc, cur],[]);
flatten(arr);

方法三

迭代 遍历

var arr = [1,2,[3,4,5,[6,7],8,9],[10,11,[12,13]]];
var flatten = function(array){
    for(var item of array){
       //这种和下面的写法区别在哪:  Array.isArray(item)? [].concat([...item]):[];
        if(Array.isArray(item)){
            array = [].concat(...array)
        }
    }
    return array;
}
flatten(arr)

方法四

递归

var arr = [1,2,[3,4,5,[6,7],8,9],[10,11,[12,13]]];
var flatten = function(array){
    var newArr = [];
    for(var item of array){
        if(Array.isArray(item)){
            newArr.push(...flatten(item))
        }else {
            newArr.push(item)
        }
    }
    return newArr;
}
flatten(arr)

相关文章

  • 5种方式实现数组扁平化

    5种方式实现数组扁平化 数组扁平化概念 数组扁平化是指将一个多维数组变为一维数组 实现 1. reduce 遍历数...

  • JavaScript编码能力

    1.多种方式实现数组去重、扁平化、对比优缺点 数组去重 扁平化 2.多种方式实现深拷贝、对比优缺点 3.手写函数柯...

  • JS 数组扁平化的5种方式

    什么是数组扁平化 数组扁平化是指将一个多维数组变为一维数组 数据准备 实现方法一 实现方法二 实现方法三 实现方法...

  • 数组扁平化的实现方式

    数组扁平化的实现方式 方法一 利用数组的 join() 转换成字符串,利用字符串的 split() 转换成...

  • 成长(12/2000)——面试题合集9

    扁平化数组 即将数组展开,例如[1,[2,[3]]]转化为[1,2,3]; 实现方式 1.es6方法:flatar...

  • js经典算法记录

    随机数组洗牌 简单的日期字符串排序 递归实现数组扁平化 极简版数组扁平化 记录数组项重复次数 冒泡排序 快速排序(...

  • JavaScript编码能力篇

    1.多种方式实现数组去重,扁平化、对比优缺点 数组去重 var arr =[1,43,2,4,5,7,4,2,3,...

  • js实现数组扁平化

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

  • 5种方式实现数组扁平化

    数组扁平化概念 数组扁平化是指将一个多维数组变为一维数组 实现 1. reduce 遍历数组每一项,若值为数组则递...

  • 数组扁平化

    数组扁平化概念 数组扁平化是指将一个多维数组变为一维数组 实现 1. reduce 遍历数组每一项,若值为数组则递...

网友评论

    本文标题:数组扁平化的实现方式

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