zoukankan      html  css  js  c++  java
  • npm包之array-flatten

    前言

    array-flatten用于对数组进行降维.

    使用

    const { flatten } = require("array-flatten"); // 降维数组
    console.log(flatten([1, [2, 666, [3, [4, [5], 6], 7], 8], 9]));
    

    附录源码

    // 指定深度展开
    function flattenWithDepth (array, result, depth) {
        for (var i = 0; i < array.length; i++) {
            var value = array[i]
    
            // 判断是否到了指定的深度 或者 当前数组是否已经全部展开
            if (depth > 0 && Array.isArray(value)) {
                flattenWithDepth(value, result, depth - 1)
            } else {
                result.push(value)
            }
        }
    
        return result
    }
    
    // 全部展开
    function flattenForever (array, result) {
        for (var i = 0; i < array.length; i++) {
            var value = array[i]
    
            if (Array.isArray(value)) {
                flattenForever(value, result)
            } else {
                result.push(value)
            }
        }
    
        return result
    }
    
    function arrayFlatten (array, depth) {
        if (depth == null) {
            return flattenForever(array, [])
        }
    
        return flattenWithDepth(array, [], depth)
    }
    
    console.log(arrayFlatten([1, [2, [3, [4, [5], 6], 7], 8], 9],  2));
    console.log(arrayFlatten([1, [2, 666, [3, [4, [5], 6], 7], 8], 9]));
    

    总结

    1. 可以直接将源码拷到项目里使用 0.0;
    2. 使用TS的记得使用它自带的声明文件 >_>;
  • 相关阅读:
    aa
    ECS上搭建Docker(CentOS7)
    mysql时间戳转日期
    rsync用法
    docker安装mysql8
    使用Docker安装mysql,挂载外部配置和数据
    my.cnf
    Centos7通过yum安装jdk8
    maven添加本地包命令mvn install:install-file
    Mysql——查看数据库,表占用磁盘大小
  • 原文地址:https://www.cnblogs.com/xpengp/p/12796331.html
Copyright © 2011-2022 走看看