首页 > 其他 > 详细

npm包之array-flatten

时间:2020-05-19 17:08:37      阅读:40      评论:0      收藏:0      [点我收藏+]

前言

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的记得使用它自带的声明文件 >_>;

npm包之array-flatten

原文:https://www.cnblogs.com/xpengp/p/12796331.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!