道招

javascript数组降维

如果您发现本文排版有问题,可以先点击下面的链接切换至老版进行查看!!!

javascript数组降维

网上有不少提供数组降维的方法,但是一般是二维数组,并且对多维数组的处理不好。降维自然会想到用concat方法,如果只是全部循环用push的话,那样写起来更麻烦,必要时该用concat的就用concat。
function dist(arr) {
    var res = [];
    for (var i = 0; i < arr.length; i++) {
        if (Object.prototype.toString.call(arr[i]) === '[object Array]') {
            res = res.concat(dist(arr[i]));
        } else {
            res.push(arr[i]);
        }
    }
    return res;
}
var re = dist([1, 2, [3, 4, [5, 6, [7, 8]]]]);
console.log('re', re); //输出[1,2,3,4,5,6,7,8]
其实逼格更高的写法是用reduce
function dist(arr){
    if(Array.isArray(arr)){
        return arr.reduce(function(prev, curr){
            return prev.concat(dist(curr));
        },[]);
    }else{
        return arr;
    }
}
更新时间:
上一篇:Javascript原生函数作为构造函数下一篇:iframe跨域传输数据

相关文章

将object型转换为数组array型

object貌似是最大的类型了,在使用数据的时候有的数据的键和值得形式基本上就是数组了,但是它却不是array类型,可以这样的函数转换一下就行了。 function object_to_arr 阅读更多…

asp读取txt文本文档内容至数组,并控制输出指定行(列)

针对很多朋友想知道如何用asp获取.txt文件的内容,并存入数组,输出指定行或列 &lt;% Sub ReadFiles() Dim objFSO Dim objText Dim O 阅读更多…

java实现数组相减

先定义两个数组,前面的一个小,后面的一个比前面的大,名为相减其实就是求大数组中小数组不包含的那一部分的集合 我们可以看Test.java源代码 [code lang="java"] packag 阅读更多…

Java基础第十三讲:数组

本讲内容:数组 数组是Java中的对象,它用来存储多个相同类型的基本数据类型或者对象引用。 一、声明数组 数组是通过说明它将要保存的元素类型来声明的,元素类型可以是对象或者基本类 阅读更多…

java数组应用

用java实现数到3退出(一群小朋友围成一个圈,数到3的朋友自动退出该圈) Count3Quit.java的源代码如下 [code lang="java"] package com.daoz 阅读更多…

php将二维数组转换成字符串

假设现在我们有数组如下: Array ( [1] =&gt; 错 [3] =&gt; 错 ) 想将其转化为字符串,即转化成 1错3错 我们可以这样实现 &lt;?php $a = arra 阅读更多…

关注道招网公众帐号