繁体   English   中英

如何创建一个包含非重复数据而不是随机数的数组?

[英]How to create an Array which contains unduplicated and not random numbers?

我想在JavaScript中创建一个方法,它可以使用Tree结构生成包含非随机和非重复数字的数组。

假设这个方法名为permutation() ,我只是简单地使用

permutation(3)

我会得到一个可以迭代的数组,每个都是

012 021 120 102 201 210

如果我将数字3更改为5,它将生成一个数组

012345 012354 etc...

然后我发现我可以使用树结构来构建这种类型的数组:

root:     0      1      2 
        ↓   ↓  ↓   ↓  ↓   ↓
depth1: 1   2  0   2  1   0
        ↓   ↓  ↓   ↓  ↓   ↓
depth2: 2   1  1   0  0   1

然后我只是遍历所有节点以获得结果。

数量增加时也是如此

root:           0               1   2   3   4   5   6....
        ↓   ↓   ↓   ↓   ↓   ↓
depth1: 1   2   3   4   5   6

etc....

问题是我不知道如何在JavaScript中构建这样的树? 我不知道这些问题的名称是什么。

您可以获取数组并为每个剩余项目获取子树。

 function createTree(array) { return array.map((v, i, a) => array.length === 1 ? [v] : [v, createTree([...a.slice(0, i), ...a.slice(i + 1)])] ); } var result = createTree([0, 1, 2]); console.log(result); 
 .as-console-wrapper { max-height: 100% !important; top: 0; } 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM