首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何创建一个包含无重复和非随机数的数组?

如何创建一个包含无重复和非随机数的数组?
EN

Stack Overflow用户
提问于 2019-06-05 15:45:39
回答 1查看 61关注 0票数 0

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

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

代码语言:javascript
运行
复制
permutation(3)

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

代码语言:javascript
运行
复制
012 021 120 102 201 210

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

代码语言:javascript
运行
复制
012345 012354 etc...

然后我想我可以使用树形结构来构建这样的数组:

代码语言:javascript
运行
复制
root:     0      1      2 
        ↓   ↓  ↓   ↓  ↓   ↓
depth1: 1   2  0   2  1   0
        ↓   ↓  ↓   ↓  ↓   ↓
depth2: 2   1  1   0  0   1

然后,我只需遍历所有节点即可得到结果。

当数量增加时也是如此

代码语言:javascript
运行
复制
root:           0               1   2   3   4   5   6....
        ↓   ↓   ↓   ↓   ↓   ↓
depth1: 1   2   3   4   5   6

etc....

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

EN

回答 1

Stack Overflow用户

发布于 2019-06-05 15:53:40

您可以获取该数组,并为每个剩余项获得一个子树。

代码语言: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);
代码语言:javascript
运行
复制
.as-console-wrapper { max-height: 100% !important; top: 0; }

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56456185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档