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的记得使用它自带的声明文件 >_>;
  • 相关阅读:
    第五章4
    第五章3
    第五章2
    第五章1
    第四章14
    第四章13
    第四章12
    第四章11
    第五章例5-6
    第五章例5-4
  • 原文地址:https://www.cnblogs.com/xpengp/p/12796331.html
Copyright © 2011-2022 走看看